#!/bin/sh ref="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$ref" ] || [ -z "$oldrev" ] || [ -z "$newrev" ]; then echo "Usage: $0 " >&2 exit 1 fi # --- Disallow pushing to the branches for pockets pocket_to_git() { local pocket git pocket="$1" git="$(invirt-getconf "git.pockets.$pocket.git" 2>/dev/null)" if [ $? != 0 ]; then git="$pocket" fi echo "$git" } for pocket in $(invirt-getconf -l git.pockets); do if [ "$ref" = "refs/heads/$(pocket_to_git "$pocket")" ]; then echo "*** Pushing to a pocket branch in this repository is not allowed" >&2 exit 1 fi done # --- Disallow pushing tags case "$ref" in refs/heads/*) ;; *) echo "*** Pushing non-branches to this repository is not allowed" >&2 exit 1 ;; esac