Update telegram-approval-join submodule and apply branding patches
This commit is contained in:
parent
4e71c09c5a
commit
015f99dc83
10 changed files with 263 additions and 7 deletions
83
scripts/sync.sh
Executable file
83
scripts/sync.sh
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/env bash
|
||||
# sync.sh — Copy telegram-approval-join submodule into internal/, then apply branding patches.
|
||||
# Usage: ./scripts/sync.sh
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
SUBMODULE_DIR="$ROOT_DIR/telegram-approval-join"
|
||||
PATCH_FILE="$ROOT_DIR/patches/0001-nuzzles.patch"
|
||||
|
||||
# ── 1. Ensure submodule is initialised ────────────────────────────────────────
|
||||
echo "→ Updating submodule..."
|
||||
|
||||
# Capture the submodule commit before update
|
||||
OLD_COMMIT=$(git -C "$SUBMODULE_DIR" rev-parse HEAD 2>/dev/null || echo "")
|
||||
|
||||
# Update the submodule
|
||||
git -C "$ROOT_DIR" submodule update --init --recursive --remote
|
||||
|
||||
# Capture the submodule commit after update
|
||||
NEW_COMMIT=$(git -C "$SUBMODULE_DIR" rev-parse HEAD 2>/dev/null || echo "")
|
||||
|
||||
# Check if there were any changes
|
||||
# if [[ "$OLD_COMMIT" == "$NEW_COMMIT" ]] && [[ -n "$OLD_COMMIT" ]]; then
|
||||
# echo " Submodule is already up to date. Nothing to do."
|
||||
# exit 0
|
||||
# fi
|
||||
|
||||
# ── 2. Wipe and re-copy the submodule source ──────────────────────────────────
|
||||
echo "→ Copying telegram-approval-join source to root..."
|
||||
# Clean up directories that will be replaced
|
||||
rm -rf "$ROOT_DIR/cmd" "$ROOT_DIR/internal" "$ROOT_DIR/Dockerfile" "$ROOT_DIR/go.mod" "$ROOT_DIR/go.sum" "$ROOT_DIR/config.yaml.example"
|
||||
|
||||
# Copy source files, excluding .git and keeping patches/ and scripts/
|
||||
rsync -a --stats --exclude='.git' --exclude='internal/telegram-approval-join' \
|
||||
"$SUBMODULE_DIR/" "$ROOT_DIR/" \
|
||||
--exclude='patches' --exclude='scripts' --exclude='README.md'
|
||||
|
||||
# Remove scripts/ from .gitignore so we can track our sync script
|
||||
sed -i '/^scripts\/$/d' "$ROOT_DIR/.gitignore"
|
||||
|
||||
# ── 3. Rewrite the Go module path inside the copied source ────────────────────
|
||||
# Change the module from telegram-approval-join to telegram-approval-join-nuzzles
|
||||
echo "→ Rewriting module path in go.mod ..."
|
||||
sed -i "s|^module git\.zio\.sh/astra/telegram-approval-join|module git.zio.sh/astra/telegram-approval-join-nuzzles|" "$ROOT_DIR/go.mod"
|
||||
|
||||
# Fix all import references in the copied source
|
||||
echo "→ Rewriting import paths in .go files ..."
|
||||
find "$ROOT_DIR" -name '*.go' -not -path "*/telegram-approval-join/*" | xargs sed -i 's|git\.zio\.sh/astra/telegram-approval-join|git.zio.sh/astra/telegram-approval-join-nuzzles|g'
|
||||
|
||||
# ── 4. Apply branding string patch ────────────────────────────────────────────
|
||||
if [[ -f "$PATCH_FILE" ]]; then
|
||||
echo "→ Applying branding patch ..."
|
||||
# Check if patch applies cleanly first (dry run)
|
||||
if patch --dry-run -p1 -d "$ROOT_DIR" < "$PATCH_FILE" &>/dev/null; then
|
||||
patch -p1 --no-backup-if-mismatch -d "$ROOT_DIR" < "$PATCH_FILE"
|
||||
echo " Patch applied successfully."
|
||||
else
|
||||
echo ""
|
||||
echo "⚠️ Patch did not apply cleanly — telegram-approval-join may have changed."
|
||||
echo " Run the following to see conflicts:"
|
||||
echo " patch --dry-run -p1 -d $ROOT_DIR < $PATCH_FILE"
|
||||
echo ""
|
||||
echo " Update patches/branding.patch to match the new source, then re-run sync."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo " No patch file found at patches/branding.patch — skipping."
|
||||
fi
|
||||
|
||||
# ── 5. Verify it builds ───────────────────────────────────────────────────────
|
||||
echo "→ Verifying build ..."
|
||||
go build ./... 2>&1 && echo " Build OK." || { echo "❌ Build failed."; exit 1; }
|
||||
|
||||
# ── 6. Commit changes ─────────────────────────────────────────────────────────
|
||||
echo "→ Committing changes..."
|
||||
git -C "$ROOT_DIR" add -A
|
||||
git -C "$ROOT_DIR" commit -m "Update telegram-approval-join submodule and apply branding patches" || true
|
||||
|
||||
echo ""
|
||||
echo "✅ Sync complete. Root directory is up to date with telegram-approval-join (patched)."
|
||||
Loading…
Add table
Add a link
Reference in a new issue