git blog: gitレポジトリからブログ記事のテンプレートを生成するコマンドを作りました

何ができるの?

gitのコミットログから、こんな感じのブログ記事を生成します。

生成される記事の内容は「今日の作業の要約」と「今日のコミット一覧(githubへのリンク付き)」です。

ダウンロード/インストール

git blog: generate blog template from git repository · GitHubからダウンロードして、パスの通ったディレクトリに配置してください。実行権限を与えることも忘れないでください。

動くかもしれないインストールスクリプトも貼っておきます。

#!/bin/sh
wget http://gist.github.com/raw/207650/0aca47790fb3c304382762a07de42f092ddcd607/git-blog
chmod a+x git-blog

echo "please add 'export PATH=$PWD:\$PATH' to .bashrc"

使い方

gitレポジトリ内でgit blogを実行すると、ブログ記事のテンプレートを生成します。

$ git blog
2009-10-11:
*log*[進捗]本日の作業履歴
** 要約
______

** 本日のコミット
|[http://github.com/mzp/scheme-abc/commit/670311693eb18027b2839897070a6de6bd6bdd84:title=670311693eb18027b2839897070a6de6bd6bdd84]|shuffle|
|[http://github.com/mzp/scheme-abc/commit/0e17daf60adf855c1b2a22e12dc4e85cd5f1758a:title=0e17daf60adf855c1b2a22e12dc4e85cd5f1758a]|diary|
|[http://github.com/mzp/scheme-abc/commit/d6fb7e91cd1a72080a3c95acf3d241a7342a3bbb:title=d6fb7e91cd1a72080a3c95acf3d241a7342a3bbb]|diary|

作業の要約は空欄になっているので自分で埋めてください。
あとは、はてなダイアリーにコピペすれば、ブログ記事が完成します。コピペが嫌な人は、はてダラとの併用がおすすめです。

技術的な説明

パスの通ったディレクトリにgit-hogeを置くとgit hogeで呼び出せることを利用してます。
あと、"今日のコミット"の取得は、git log --since=1.dayでやっています。

ソースコード

バックアップ的な意味で、ソースコードを貼っておきます。通常は、git blog: generate blog template from git repository · GitHubからダウンロードしたほうが便利です。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
# parse
commits = %x(git log --pretty=oneline --since=1.day).map do|line|
  line.split(' ',2)
end.reverse

today = Time.now


# format
github = commits.map do|rev,msg|
  "|[http://github.com/mzp/scheme-abc/commit/#{rev}:title=#{rev}]|#{msg.chop}|\n"
end

# print
puts <<END
#{today.strftime "%Y-%m-%d:"}
*log*[進捗]本日の作業履歴
** 要約
______

** 本日のコミット
#{github}
END