#!/usr/bin/env bash set -euo pipefail # Quiet script: always force-with-lease push branch ext (avoid tag/branch ext clash) ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT_DIR" push_ext_quiet() { git remote show origin >/dev/null 2>&1 || return 0 git fetch -q --prune origin +refs/heads/*:refs/remotes/origin/* || true if git show-ref --verify --quiet refs/remotes/origin/ext; then git rev-parse --verify ext >/dev/null 2>&1 || git switch -q -C ext origin/ext git branch --set-upstream-to=origin/ext ext >/dev/null 2>&1 || true else git rev-parse --verify ext >/dev/null 2>&1 || git switch -q -C ext fi git switch -q ext || true git add -A >/dev/null 2>&1 || true git diff --cached --quiet || git commit -m "auto_clea" >/dev/null 2>&1 || true git push --force-with-lease -u origin refs/heads/ext:refs/heads/ext >/dev/null 2>&1 || true } # Submodules git submodule foreach --recursive 'set -e; git remote show origin >/dev/null 2>&1 || exit 0; git fetch -q --prune origin +refs/heads/*:refs/remotes/origin/* || true; if git show-ref --verify --quiet refs/remotes/origin/ext; then git rev-parse --verify ext >/dev/null 2>&1 || git switch -q -C ext origin/ext; git branch --set-upstream-to=origin/ext ext >/dev/null 2>&1 || true; else git rev-parse --verify ext >/dev/null 2>&1 || git switch -q -C ext; fi; git switch -q ext || true; git add -A >/dev/null 2>&1 || true; git diff --cached --quiet || git commit -m "auto_clea" >/dev/null 2>&1 || true; git push --force-with-lease -u origin refs/heads/ext:refs/heads/ext >/dev/null 2>&1 || true' >/dev/null 2>&1 || true # Root push_ext_quiet