git logをJIRAに貼り付けられるように整形してみた
今流行のアトラシアン社のチケット管理ツールJIRA。
私も使うことが多いのですが、Gitを使っている時に、
「これリリースしますね」っていうログをJIRAにコメントや本文で貼っつけるのに整形が面倒だったので、予め整形しておいて.bashrcなどのファイルにaliasを入れておくことにしました。
alias gitlog='git log --date=short --no-merges --pretty=format:"|%h|%an|%ad|%s|"'
誰が何時、どのコミットを入れたのかがだいたい分かるので重宝してます。
これを入れておけば
$ gitlog master..develop > log_diff
とかしてあげればmasterブランチからdevelopブランチの差分が一気に取得できます。
【未熟】Linuxの実行中の負荷監視と終了時の負荷平均の自動計算を行なうshellScript
これもずいぶん前に必要に駆られたのでやっつけで作ってみたんですが、
監視を抜けるためにqをpressしたら終了、にしたら
ttyが変になってしまって終了後のcli入力が見れない(一応入力自体はできてる)事に。
というなんともポンコツなスクリプトなのですが、
どなたか何がイケないのか教えていただければすごく助かります。
一応監視内容はmpstatの数値を追っているだけです。
実行後、qキーを押すとスクリプト終了となり、
抜けた後にはawkで自動計算を走らせ、平均値を算出させます。
if [ -t 0 ]; then stty -echo -icanon time 0 min 0; fi keypress='' result='' echo "time load %user %nice %sys %iowait" while : do tl=`uptime | sed -e "s/ \([0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\).\+load average:/\1/g" | sed -e "s/ \+/ /g" | cut -d" " -f1,2 | sed -e "s/,//g" | xargs echo -n` tl=$tl`echo -n " "` tl=$tl`mpstat 1 1 | grep Average | sed -e "s/ \+/ /g" | cut -d" " -f3,4,5,6` echo $tl | sed -e "s/ /\t/g" result="$result\n$tl" read keypress if [ "$keypress" = "q" ]; then break fi done # calc average echo "check finished." echo -n "load average: " echo -e $result | grep -v "time" | awk '{ sum += $2; num++}; END { print sum/num }' echo -n "user cpu usage: " echo -e $result | grep -v "time" | awk '{ sum += $3; num++}; END { print sum/num"%" }' echo -n "iowait average: " echo -e $result | grep -v "time" | awk '{ sum += $6; num++}; END { print sum/num"%" }'
IPを直接叩かれてアクセスされたくないからmod_writeで防衛した
諸事情ありましてIPで直接サイトを閲覧されると色々面倒だったので、
.htaccessでアクセスを防止することにしました。
apache側に書かなかった理由としては、サーバにこの仕様を書いてしまうと、
rewriteルールが変更になる際に複数サーバで書き直さないといけないので至極面倒だったからです。
その点、.htaccessであれば修正→デプロイで一括なのでとても簡単!capistranoちゃん大好き!
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ RewriteRule ^(.*) http://www.mydomain.com/$1 [R=301,L] </IfModule>
ちなみにmod_rewrite私書くの苦手で、確認もあんまり出来なくて困っていたんですが、
http://htaccess.madewithlove.be/
こんなサイトが在るみたいなので今回はとても助けられました。
【Git】masterにmergeしたbranch群を一括で削除するshellScript
仕事でbranchを管理するのが面倒だったので、「リリースするときに古いブランチ消せば解決じゃね?」って思ったのが始まり。
指定したタグより前のブランチを全て削るようにしています。
判定的には指定したタグにブランチのコミットが全部入っていれば削除、
何かコミットが残っていれば残し、という感じ。
かなり適当に作ってあるので改善したい方はご自由にどうぞ持って行ってください。
Gist?なにそれ美味しいの?
■前提
- ファイル名はcheck_branch.sh
- 初期gitディレクトリパスは~/git/src/php (オプションで変更可能)
- gitコマンドにパスが通っている
- パスワード入力なしでgit pushが可能(ssh-keygenとかして。)
#!/bin/sh #------------------------------------------------- # check old branch and delete script #------------------------------------------------- result="" dirpath="~/git/src/php" tag="" execDel="" while getopts t:g:s OPT do case $OPT in "t" ) tag="$OPTARG";; "g" ) dirpath="$OPTARG";; "s" ) execDel="n";; * ) echo "option list:" echo " -t ... tag name (required)" echo " -g ... git repository directory" echo " -s ... only show branch (dont delete)" exit esac done if [ "$tag" == "" ]; then echo "command failed." echo " --usage" echo " check_branch.sh [options]" exit fi cd $dirpath # update all branches git fetch --prune conf=`git tag --list | grep -E "${tag}"` if [ "$conf" != "$tag" ]; then echo "tag not exists." exit fi echo "Display deletable tag list." for i in `git branch --remotes | grep -v HEAD | grep -v master | grep -v devel | grep -v release` do tmp=`git log --pretty=format:"|%h|%an|%s|" --no-merges remotes/origin/devel..remotes/$i | wc -w` tmp2=`git log --pretty=format:"|%h|%an|%s|" --no-merges remotes/origin/master..remotes/$i | wc -w` tmp3=`git log --pretty=format:"|%h|%an|%s|" --no-merges $tag..remotes/$i | wc -w` if [ `expr $tmp + $tmp2 + $tmp3` == 0 ]; then line=`echo $i | sed -e "s/^origin\///g"` result="$result $line" echo $i fi done if [ "$result" == "" ]; then echo "there are no deletable branch. script done." exit fi if [ "$execDel" != "n" ]; then echo "" echo "do you want delete them? [y/n]" read YN if [ "$YN" == "y" ]; then for j in $result do git branch -D $j git push origin :$j done fi fi