2012-01-27
android ビルドログ生成スクリプト
Android, Programing, 自作プログラム, シェルスクリプト
概要
"Androidをビルドした際のビルドログ" をファイルアウトするスクリプト
"makelogger" を作成した。
"makelogger" は、makeコマンドのWrapperです。
"makelogger"という今回作成したスクリプトを実行すると
- make実行
- ログファイル出力 (log_YYYYMMDD_HHMMSS.txt)
が行われます
背景
AndroidのMakeをする際、ログファイルが出力されないので困る
$ make
#ログは、ターミナルに出力されるだけ
以下のようにすれば、ログ "log.txt" は出るが、ビルド毎にログファイル名を変えないと、古いログが上書きされて困る
$ make >& log.txt #log.txtが生成される # "&"を付けるのは、標準出力と標準エラー出力を両方ファイルに出力するため(ビルドログは両方が出力される) $ make >& log.txt #log.txtが上書きされる
でも、毎回ログファイル名を考えるのも入力するのもダルい、、
なので、ファイル名が自動的に付くとうれしい。ビルド開始時の日時が付くとうれしいかな。
んで、以下みたいにすれば、ファイル名に日時は自動に付くが、
$ make >& log_`date +%Y%m%d_%H%M%S`.txt
むしろ、%だのなんだのをいちいち書くほうがダルいので、
これをシェルスクリプトにしてしまえばいいなと考えました
環境
やったこと
"makelogger" スクリプト作成 (スクリプト内容は後述)
"makelogger" をインストールするスクリプト"install.sh"を作成 (スクリプト内容は後述)
"install.sh" を実行して "makelogger"をインストール
# "install.sh", "makelogger", "cmdlogger" を同じディレクトリに配置した前提で $ cd <install.shのあるディレクトリ> $ sh install.sh
"makelogger"を実行して、Androidをビルド
$ cd <androidのソースのrootディレクトリ> $ makelogger -j4 # ビルド完了後、log_YYYYMMDD_HHMMSS.txtが出力される
スクリプト内容
makelogger
#!/bin/bash #makeのログ内容を "cmdlogger" (ファイル出力&ターミナルにも出力するスクリプト)にパイプで渡す make $@ |& cmdlogger
cmdlogger
#!/bin/bash #日時付ファイル名を生成 NAME=`date '+log_%Y%m%d_%H%M%S.txt'` #パイプで受け取った内容をターミナルとファイル両方に出力 while read LINE; do echo $LINE echo $LINE >> $NAME done
install.sh
#どこのディレクトリからでも実行できるように、 #デフォルトでpath設定されているディレクトリ "~/bin" にスクリプトをコピー cp cmdlogger ~/bin cp makelogger ~/bin #スクリプトに実行権限を与える chmod 755 ~/bin/cmdlogger chmod 755 ~/bin/makelogger
その他
cmdloggerってのを作らなくても、
linux標準のteeコマンドってのをうまい事使えばできたぽい、、
※teeコマンドってのを知りませんでした、、、
ま、シェルスクリプト作る練習になったからいいや、、、
トラックバック - http://d.hatena.ne.jp/aremokoremo/20120127/1327685666
リンク元
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=android+ビルドログ&source=web&cd=2&ved=0CDkQFjAB&url=http://d.hatena.ne.jp/aremokoremo/20120127/1327685666&ei=TYsoT6jyMYbJmQWer5nQAw&usg=AFQjCNFFJYsQ9Jo4I0_rFlOwtDM8Ui
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cts=1330657906210&ved=0CDkQFjAB&url=http://d.hatena.ne.jp/aremokoremo/20120127/1327685666&ei=1zlQT4-THKzKmQXXlcyOCg&usg=AFQjCNFFJYsQ9Jo4I0_rFlOwtDM8UibYfw&sig2=Cn_pgzFbIcn5-d0b-I
- 5 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=2&ved=0CC8QFjAB&url=http://d.hatena.ne.jp/aremokoremo/20120127/1327685666&ei=yNVpT5yQPNKjiQesjanLCg&usg=AFQjCNFFJYsQ9Jo4I0_rFlOwtDM8UibYfw&sig2=DXYRN2OC8eK_3gstj3ptJA
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=シェル ログ 出力 ファイル ターミナル&source=web&cd=1&ved=0CCgQFjAA&url
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=android ビルド ログ&source=web&cd=1&ved=0CC8QFjAA&url=http://d.hatena.ne.jp/aremokoremo/20120127/1327685666&ei=vuwxT6umH8nJmAWR9-zHBQ&usg=AFQjCNFFJYsQ9Jo4I0_rFlOwt
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=android+make+ログ&source=web&cd=2&ved=0CDgQFjAB&url=http://d.hatena.ne.jp/aremokoremo/20120127/1327685666&ei=PfolT92NFI6SiQfhlaWZBA&usg=AFQjCNFFJYsQ9Jo4I0_rFlOwtDM8UibYfw
- 3 http://www.google.co.jp/search?q=Android+ビルド シェルスクリプト&hl=ja&source=hp&gbv=2&gs_sm=3&gs_upl=1859l9344l0l11141l31l25l0l0l0l8l250l4155l1.17.7l25l0&oq=Android+?%
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=ビルド ログ ターミナル 出力&source=web&cd=1&ved=0CGoQFjAA&url=http://d.hatena.ne.jp/aremokoremo/
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CEYQFjAC&url=http://d.hatena.ne.jp/aremokoremo/20120127/1327685666&ei=rpFiT5-4L8uTiQfAveTxBQ&usg=AFQjCNFFJYsQ9Jo4I0_rFlOwtDM8UibYfw
- 2 http://d.hatena.ne.jp/embedded/20090416/p1