exit 1
fi
-if [ -z "$ref" -o -z "$oldrev" -o -z "$newrev" ]; then
+if [ -z "$ref" ] || [ -z "$oldrev" ] || [ -z "$newrev" ]; then
echo "Usage: $0 <ref> <oldrev> <newrev>" >&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/tags/*)
- echo "*** Pushing tags to this repository is not allowed" >&2
+ refs/heads/*)
+ ;;
+ *)
+ echo "*** Pushing non-branches to this repository is not allowed" >&2
exit 1
;;
esac