しつこいけれど、また自動化の話

以前書いたように、この日記はMarkdown形式のテキストファイルをBitBucketのレポジトリにPUSHすると、CIサービスであるWerckerがWebhookされ、Hugoによってhtmlファイルを生成して、そのhtmlファイルをGitHub PagesにPUSHしている。

その、日記用Markdownファイルを生成するスクリプトはAutomatorで書いた。これから、そのMarkdownファイル(拡張子は.md)を右クリックして「サービス」メニューからgitコミットするスクリプトのテストを行う。

まずファイルをaddして、それからcommit。gitコマンド的には、いちどaddされているファイルをもう一回addしても問題ないようなので、何度でも実行可能。

cd {日記gitのルートディレクトリ}

currentDate=`date +%FT%T%z | sed -e 's/\(.\{22\}\)/\1:/'`
for f in "$@"
do
	ext=`echo ${f##*.} | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"`
	if [ $ext = "md" -a ! -d $f ]; then
		sed -i '' -e 's/^date: "[^"]*"$/date: "'$currentDate'"/g' $f
    /usr/bin/git add $f
	fi
done

/usr/bin/git commit -m '[add|mod] dayly post'

日記の中の日付(日記の更新日)はcommitした瞬間の日付に上書きしている。日付フォーマットがdateコマンドのままだとおかしくなる(タイムゾーン「+0900」ではダメで、「+09:00」だとOK)ので強引に変更している、など。強引でよろしくない感じのスクリプトだが、まあとりあえず動く。