#!/usr/bin/env bash
# Post-merge hook shim.
# Delegates to .morphism/hooks/post-merge-sync.sh,
# then cleans up local branches whose remotes are gone.
set -euo pipefail

ROOT_DIR="$(git rev-parse --show-toplevel)"

# Run existing morphism post-merge sync
if [ -f "$ROOT_DIR/.morphism/hooks/post-merge-sync.sh" ]; then
    bash "$ROOT_DIR/.morphism/hooks/post-merge-sync.sh"
fi

# ── Clean up local branches tracking deleted remotes ──────────────────────
git fetch --prune 2>/dev/null || true
gone_branches=$(git branch -vv 2>/dev/null | grep ': gone]' | awk '{print $1}')
if [ -n "$gone_branches" ]; then
    echo "Cleaning up merged branches:"
    for branch in $gone_branches; do
        echo "  Deleting $branch (remote deleted)"
        git branch -d "$branch" 2>/dev/null || true
    done
fi
