From 511ae0965dd021dd38e3ace3ef7fbf7feafe01d2 Mon Sep 17 00:00:00 2001 From: antonov Date: Wed, 5 Aug 2026 21:28:40 +0300 Subject: [PATCH] Add macOS script --- git-mirror-zip-macos.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 git-mirror-zip-macos.sh diff --git a/git-mirror-zip-macos.sh b/git-mirror-zip-macos.sh new file mode 100644 index 0000000..ec4f89a --- /dev/null +++ b/git-mirror-zip-macos.sh @@ -0,0 +1,25 @@ +# Clone a git repo as a full mirror and pack it into a zip archive. +# Works on macOS (uses ditto for native compression). + +set -euo pipefail + +if [ $# -lt 1 ]; then + echo "Usage: $0 [output.zip]" + exit 1 +fi + +URL="$1" +OUT="${2:-repo.zip}" +WORK_DIR=".tmp_git_mirror" + +cleanup() { rm -rf "$WORK_DIR"; } +trap cleanup EXIT + +echo "[1/3] Cloning mirror of $URL ..." +git clone --mirror "$URL" "$WORK_DIR" + +echo "[2/3] Creating $OUT with maximum compression ..." +ditto -c -k --seedy --rsrc --keepParent "$WORK_DIR" "$OUT" + +SIZE=$(du -m "$OUT" | cut -f1) +echo "[3/3] Done: $OUT (${SIZE} MB)"