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.shmain.shhoge.Rなんかも全部収集できるが、誰かその情報を欲しいだろうか・・・。

コメント

このブログの人気の投稿

Inverse-normal transformation

SKAT

locuszoom