いろんないみで

はまっちゃた

redmineのリポジトリのファイルをAPIで取得する

redmineバージョン管理システムリポジトリのファイルをAPIで取得してこんな感じで使いたいなぁと思いました。

api_key="APIキー"
repo_url="https://ホスト名/redmine/projects/プロジェクト名/repository/revisions/ブランチ名/raw"
wget -qO - "$repo_url/ファイル名?key=$api_key" | sudo bash -s "$api_key"

簡単なパッチプラグインを書いてみました。

フォルダ構成はこんな感じです。

C:.
│  init.rb
└─lib
    └─monkey_patches
            repositories_controller_patch.rb

内容はこんな感じです。

init.rb です。

require 'redmine'

Redmine::Plugin.register :monkey_patches do
  name 'monkey patch'
  version '0.0.1'
end

Rails.configuration.to_prepare do
  require 'monkey_patches/repositories_controller_patch'
  RepositoriesController.send(:include, MonkeyPatches::RepositoriesControllerPatch)
end

lib/monkey_patches/repositories_controller_patch.rb です。

module MonkeyPatches
  module RepositoriesControllerPatch
    def self.included(base)
      base.class_eval do
        accept_api_auth :raw
      end
    end
  end
end

redmine結構いい感じですね。

マックでなんとかMバイトのファイル作りたい

マックでなんとかMバイトのファイル

なんとかMバイトのファイルを作りたい場面あるかもしれない。

#! /bin/bash
retsize=$1
retfile="${1}m.txt"
unit=1024

touch 1k.txt 1m.txt $retfile

while [ $(wc -c < 1k.txt) -lt $unit ] ; do
  echo 1 >> 1k.txt
done

for i in $(seq 1 $unit) ; do
  cat 1k.txt >> 1m.txt
done

for i in $(seq 1 $retsize) ; do
  cat 1m.txt >> $retfile
done

ls -lh *.txt

実行してみます

./nbtxt.sh 130

出力は以下

-rw-r--r--  1 user  staff   130M  7 30 10:28 130m.txt
-rw-r--r--  1 user  staff   1.0K  7 30 10:28 1k.txt
-rw-r--r--  1 user  staff   1.0M  7 30 10:28 1m.txt

ファインダーで開いてみました。 f:id:hujo:20160730115119p:plain あれ。。スクリプトの単位の部分を以下に変更してみました

unit=1000

もう一度実行してみます

./nbtxt.sh 130

出力

-rw-r--r--  1 user  staff   124M  7 30 10:38 130m.txt
-rw-r--r--  1 user  staff   1.0K  7 30 10:38 1k.txt
-rw-r--r--  1 user  staff   977K  7 30 10:38 1m.txt

f:id:hujo:20160730115335p:plain よくわからないです。