git push時にTODOコメントを列挙する

死ぬほど歯が痛くて集中力皆無。

つくったもの

push時(正確にはpush直前)にカレントディレクトリ配下のファイル内にTODOコメントがあったら教えてくれる。

コード

#!/bin/sh

PTTRN=".*TODO: \[#[0-9]*\].*"
flg=true

# カレントディレクトリ配下のファイルをフルパスで表示( `.git/` は無視)
fl=(`find . -type d -name .git -prune -o -type f -print`)

for f in ${fl[@]}
do
    if grep -E "$PTTRN" $f -q; then
        if "${flg}" ; then
            ESC=$(printf '\033')
            printf "${ESC}[33m%s${ESC}[m\n" 'WARNING: REMAINING TODO COMMENT'
            flg=false
        fi
        
        echo \[$f\]
        grep -E "$PTTRN" $f -n
        echo
    fi
done

上記を以下に書いて実行権限渡せばOK。

.git/hooks/pre-push   

参考