gedit の外部ツールに「新しい%changelogを挿入」を追加
[追記 2009/09/21]Henrich 氏のコメントを受けて、一部を修正しました。
普段 Emacs しか使わないのですが、たまたま gedit で spec ファイルを開いてみたら、各タグに色付けがしてあり見易かったので、%changelog を自動挿入する機能があるかな?と思いきや何もありませんでした。
とりあえず思いつきで作ってみました。
ここでは仮に input-changelog-gedit.sh としておきます(2008/12/31 に修正,さらに 2009/01/15 に僅かな修正)。
#!/bin/sh ## input new %changelog format of rpm spec file for gedit ## Time-stamp: <2008-12-31 08:16:51 munepi> DATE=`LANG=C date '+%a %b %d %Y'` PACKAGER=`cat $HOME/.rpmmacros | grep '^%packager' | sed 's/%packager[[:blank:]]*//'` _DIST_RELEASE=`cat /etc/vine-release | cut -f3 -d" " | cut -f1 -d.` COMMENT="- new upstream release" set -e tmp=`mktemp` trap cleanup EXIT cleanup() { set +e [ -z "$tmp" -o ! -d "$tmp" ] || rm -f "$tmp" } cat $@ > $tmp PKG_VERSION=`rpm -q --queryformat %{version}-%{release}"\n" --specfile $tmp | head -1 | sed "s/vl${_DIST_RELEASE}$//g"` cat $tmp | sed "s/%changelog[[:blank:]]*$/%changelog\n* ${DATE} ${PACKAGER} ${PKG_VERSION}\n${COMMENT}\n/" exit ### end of file
上記スクリプトの通り、「cat $@」方式ですので、コマンドラインから使う場合、
$ input-changelog-gedit.sh input.spec > output.spec
あるいは、
$ cat input.spec | input-changelog-gedit.sh > output.spec
です。gedit の外部ツールとしては、後者として実行されているようです。