#!/bin/bash # gitolite VREF to find autogenerated files # *completely* site specific; use it as an illustration of what can be done # with gitolite VREFs if you wish # see gitolite docs for what the first 7 arguments mean # inputs: # arg-8 is currently only one possible value: AUTOGENERATED # outputs (STDOUT) # arg-7 if any files changed in the push look like they were autogenerated # otherwise nothing # exit status: # always 0 die() { echo "$@" >&2; exit 1; } [ -z "$8" ] && die "not meant to be run manually" newsha=$3 oldtree=$4 newtree=$5 refex=$7 option=$8 [ "$option" = "AUTOGENERATED" ] && { # currently we only look for ".java" programs with the string "Generated # by the protocol buffer compiler. DO NOT EDIT" in them. git log --name-only $nf --format=%n $newtree --not --all | grep . | sort -u | grep '\.java$' | while read fn do git show "$newtree:$fn" | egrep >/dev/null \ 'Generated by the protocol buffer compiler. +DO NOT EDIT' || continue echo $refex exit 0 done }