33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
# Mirror kalinamall/main to remote "home" with papatramp URLs (force).
|
|
set -euo pipefail
|
|
|
|
SOURCE_REPO="${1:-$(pwd)}"
|
|
BRANCH="${2:-main}"
|
|
REMOTE_NAME="${3:-home}"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REWRITE="$SCRIPT_DIR/rewrite-git-host-urls.sh"
|
|
SOURCE_REPO="$(cd "$SOURCE_REPO" && pwd)"
|
|
cd "$SOURCE_REPO"
|
|
|
|
REPO_NAME="$(basename "$(git rev-parse --show-toplevel)")"
|
|
REMOTE_URL="$(git remote get-url "$REMOTE_NAME")"
|
|
WORK="${TMPDIR:-/tmp}/home-mirror-${REPO_NAME}-$$"
|
|
|
|
rm -rf "$WORK"
|
|
mkdir -p "$WORK"
|
|
git archive --format=tar "$BRANCH" | tar -x -C "$WORK"
|
|
bash "$REWRITE" home "$WORK"
|
|
|
|
cd "$WORK"
|
|
git init -b main >/dev/null
|
|
git add -A
|
|
SHA="$(git -C "$SOURCE_REPO" rev-parse --short HEAD)"
|
|
git -c user.name='PTah' -c user.email='papatramp@gmail.com' \
|
|
commit -m "chore(home): mirror from kalinamall ($SHA) with papatramp URLs" >/dev/null
|
|
git remote add target "$REMOTE_URL"
|
|
git push target main --force
|
|
echo "OK -> $REMOTE_URL (home mirror, force)"
|
|
|
|
cd "$SOURCE_REPO"
|
|
rm -rf "$WORK" |