logをとる
流石に研究ログを取らねばならない。しかし、どうしたものか。ベストプラクティス(笑)で書いたような形でディレクトリを細切れに構成していくと、再現性は高いが可視性がよくない。かと言ってそれぞれのディレクトリの場所をテキストファイルにコピペしていくのはあまりにも生産性が低いように思う。せっかく考えてディレクトリを配置しているので。
それぞれのディレクトリに書いたREADME.mdを自動収集するスクリプトを試してみる。
getLogs () {
PRJ=$1
PRJDIR=$2
# ディレクトリなければ作る
mkdir -p /home/hanajori/logfiles/README_LOG/$PRJ/weekly
mkdir -p /home/hanajori/logfiles/README_LOG/$PRJ/update
#指定ディレクトリ以下のmdファイルを全て収集して表示、作成日時と共にweeekly.mdファイルに保存
for md in `find $PRJDIR -name README.md`; do
ls -l $md | cut -f 6- -d " ";
cat $md;
printf "\n" >> $PRJDIR/README_LOG/weekly/`date +"${PJR}_%y%m%d"_weekly.md
done
cd $PRJDIR/README_LOG/weekly
lastweek=`ls -lt $PRJDIR/README_LOG/weekly *weekly.md | head -2 | tail -1`
thisweek=`ls -lt $PRJDIR/README_LOG/weekly *weekly.md | head -1 | tail -1`
diff $lastweek $thisweek > ../update/`date + "${PRJ}_%y%m%d_update.md
}
#ログを撮りたいプロジェクトを記載
getLogs PROJECT_X /home/hanajori/PRJ_X
getLogs PROJECT_Y /home/hanajori/PRJ_Y
みたいな。これを週ごとに自動実行させれば各ディレクトリの簡単な説明のみREADME.mdファイルに記載しておけば自動で見栄えの良いログファイルができる。これだとプロジェクトが長くなってくるとログが大きくなりすぎてしまうので、一週間の更新分のみのみわかるように差分ファイルも作っておく。
logfiles---PRJ---weekly---180501_weekly.md
| |-180508_weekly.md
|
|-update---180508_update.md
最終的に以下のようにログが記録されれば良いと思う。もちろん、ls
のところを工夫すればinit.sh
やmain.sh
、hoge.R
なんかも全部収集できるが、誰かその情報を欲しいだろうか・・・。
コメント
コメントを投稿