"Jason Pyeron" <jpyeron@xxxxxxxx> writes: > What would you change? Any bugs that you see? > sigkey=$(\ > git cat-file $newrev -p |\ "-p" being a command line option should come before revision, but more importantly, because you accept pushes only to refs/heads/, you would want to explicitly require commit objects, no? i.e. git cat-file commit "$newrev" | I am not sure if you need these unsightly backslashes. When you stop talking to it after saying "$(", or "$( git cat-file ... |", the shell _knows_ that you haven't stopped what you want to tell it. > sed -e '/^ /{H;$!d;}; x;/^gpgsig /!d; s/^gpgsig//;' |\ > cut -c 2- |\ It always makes me feel nervous to see people pipe sed output to another filter that is a mere s/.//; Is this complex pipeline the same as this (I didn't understand the trailing I at the end)? git cat-file commit "$newrev" | sed -ne '/^gpgsig /,/^ -----END/{ s/^gpgsig // s/^ //p }' | gpg --list-packets --textmode | sed -ne '/^:signature packet:/s/.*keyid \([0-9A-F]*\).*/\1/p' > gpg --list-packets --textmode |\ > sed '/keyid/!d; s/.*keyid \([0-9A-F]\{16\}\).*/\1/I' \ > ) > if [ -z "$sigkey" ]; then > echo no GPG signature on commit $newrev > exit 1 > fi I am not sure if the design of this, to require signature only on the tip commit, is sound. That is not a -bug- in the script, though. > if [[ $refname != refs/heads/* ]]; then > echo only heads may be pushed, illegal ref: $refname > exit 1; > fi > > head="${refname:11}" It is hard to tell where the magic number 11 comes from. Perhaps head="${refname#refs/heads/}" reads easier? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html