#!/bin/bash set -e function checkFile() { [[ "$1" =~ \.zone$ ]] || return 0 [[ -f "$1" ]] || return 0 # allow deleting zone old="$(git show HEAD:"$1"|grep -Po '\d+(?=\s+; serial)')" new="$(git show :"$1"|grep -Po '\d+(?=\s+; serial)')" [[ "$old" -lt "$new" ]] && return 0 || { echo "serial bump check failed for $1"; return 1; } } ret=0 while read file; do checkFile "$file" || ret=1; done <<< "$(git diff --name-only --cached)" exit $ret