28 lines
1.6 KiB
Bash
Executable File
28 lines
1.6 KiB
Bash
Executable File
#!/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
|