2012
6月
21
(木)
git(github) のログを Wiki(PukiWiki[6]) 書式に変換するシェルスクリプト [7]
このところ、xpWiki[12], HypCommonFunc[13] や X-elFinder[14] の開発日記で一定のフォーマットで、github での更新履歴を載せているので気づいた人もいるかも知れませんが・・・
はい、シェルスクリプトで自動抽出&変換しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| -
!
-
|
|
|
|
|
|
!
-
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
!
|
if [ ! "$1" -o ! "$2" ]; then
echo "引数がありません。: makelog [xpwiki[12]|hypcommon|xelfinder] [対象の最古コミットの一つ前のコミットID]"
else
GITDIR="/hoge/git"
LOGDIR="/hoge/git/log"
if [ $1 = "xpwiki[12]" ]; then
GITBASE="xpwiki[12]-linked"
GITHUB="nao-pon[3]/xpWiki[12]"
elif [ $1 = "hypcommon" ]; then
GITBASE="hyp_common-linked"
GITHUB="nao-pon[3]/HypCommon"
elif [ $1 = "xelfinder" ]; then
GITBASE="xelfinder-git"
GITHUB="nao-pon[3]/xelfinder"
else
echo "第一引数が変です。"
exit 1
fi
cd $GITDIR/$GITBASE
git log $2.. --reverse --pretty=format:'-[[%h:https://github.com/[15]'$GITHUB'/commit/%H]]: %s%n--%b' | sed 's/&/&/g' > $LOGDIR/$GITBASE.log
sed -i ':loop; N; $!b loop; s/\n\([^-]\)/~\n\1/g' $LOGDIR/$GITBASE.log
sed -i ':loop; N; $!b loop; s/~\n\n\([^-]\)/\n~\1/g' $LOGDIR/$GITBASE.log
fi
|
GITDIR, LOGDIR, GITBASE, GITHUB や $1 の if 文判定やメッセージなどは、適当に修正してください。