
better puppet pre-commit hook
By: a guest on
Aug 25th, 2012 | syntax:
Bash | size: 0.85 KB | hits: 18 | expires: Never
#!/bin/sh
manifest_syntax() {
printf "Checking manifest\t$1: "
$(which puppet) parser validate $1 && printf "Syntax OK\n"
}
lint_check() {
printf "Checking best practices\t$1: "
$(which puppet-lint) $1 && printf "Syntax OK\n"
}
erb_syntax() {
printf "Checking erb\t\t$1: "
$(which erb) -x -T - $1 | $(which ruby) -c
}
ruby_syntax() {
printf "Checking ruby\t\t$1: "
$(which ruby) -rpuppet $1 && printf "Syntax OK\n"
}
for i in $(git diff HEAD --name-only); do
# switch on file extension
case $( echo $i |awk -F. '{ print $NF }' ) in
pp)
manifest_syntax $i
lint_check $i
;;
erb)
erb_syntax $i ;;
rb)
ruby_syntax $i ;;
*)
printf "$i is something I don't recognize... skipping\n" ;;
esac
done