|
現: 2012-06-21 (木) 20:19:55 nao-pon  |
| | + | #navi |
| | + | RIGHT:&rsslink(../); |
| | + | #boxdate |
| | | | |
| | + | * git(github) のログを Wiki(PukiWiki) 書式に変換するシェルスクリプト [#ga47149e] |
| | + | RIGHT:&tag(git,github,プログラミング,シェルスクリプト); |
| | + | |
| | + | このところ、xpWiki, HypCommonFunc や X-elFinder の開発日記で一定のフォーマットで、github での更新履歴を載せているので気づいた人もいるかも知れませんが・・・ |
| | + | |
| | + | はい、シェルスクリプトで自動抽出&変換しています。 |
| | + | |
| | + | #code(bash){{ |
| | + | #!/bin/sh |
| | + | |
| | + | # git の log から 対象のコミットから最新までのログを PukiWiki 書式で整形する |
| | + | # |
| | + | # GITDIR: ローカルgit の親ディレクトリ |
| | + | # LOGDIR: ログを出力するディレクトリ |
| | + | # GITBASE: ローカルgit のベースネーム |
| | + | # GITHUB: github上のディレクトリ名 |
| | + | # |
| | + | |
| | + | if [ ! "$1" -o ! "$2" ]; then |
| | + | echo "引数がありません。: makelog [xpwiki|hypcommon|xelfinder] [対象の最古コミットの一つ前のコミットID]" |
| | + | else |
| | + | GITDIR="/hoge/git" |
| | + | LOGDIR="/hoge/git/log" |
| | + | if [ $1 = "xpwiki" ]; then |
| | + | GITBASE="xpwiki-linked" |
| | + | GITHUB="nao-pon/xpWiki" |
| | + | elif [ $1 = "hypcommon" ]; then |
| | + | GITBASE="hyp_common-linked" |
| | + | GITHUB="nao-pon/HypCommon" |
| | + | elif [ $1 = "xelfinder" ]; then |
| | + | GITBASE="xelfinder-git" |
| | + | GITHUB="nao-pon/xelfinder" |
| | + | else |
| | + | echo "第一引数が変です。" |
| | + | exit 1 |
| | + | fi |
| | + | cd $GITDIR/$GITBASE |
| | + | git log $2.. --reverse --pretty=format:'-[[%h:https://github.com/'$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 文判定やメッセージなどは、適当に修正してください。 :-) |
| | + | |
| | + | RIGHT:&font(90%){&page_comments;}; |
| | + | #navi |
- nao-pon/blog/2012-06-21 のバックアップ差分(No. All)
Counter: 474,
today: 1,
yesterday: 0