mirror of
https://seed.radicle.dev/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5.git
synced 2026-11-02 01:40:28 +08:00
32 lines
877 B
Bash
Executable File
32 lines
877 B
Bash
Executable File
#! /usr/bin/env sh
|
|
set -e
|
|
|
|
if [ "$#" -lt 2 ]; then
|
|
printf "usage: %s <rid> <nid>\n" "$(basename "$0")"
|
|
exit 1
|
|
fi
|
|
|
|
RAD_HOME=${RAD_HOME:-"$HOME/.radicle"}
|
|
# shellcheck disable=SC2001
|
|
REPO=$(echo "$1" | sed 's/^rad://')
|
|
REMOTE=$2
|
|
|
|
cd "$RAD_HOME/storage/$REPO"
|
|
|
|
sigrefs=$(git rev-parse "refs/namespaces/$REMOTE/refs/rad/sigrefs")
|
|
signed=$(git show "$sigrefs:refs")
|
|
actual=$(git for-each-ref "refs/namespaces/$REMOTE/refs/**" --format="%(objectname) %(refname)")
|
|
|
|
# Strip namespace prefix.
|
|
# shellcheck disable=SC2001
|
|
actual=$(echo "$actual" | sed "s@refs/namespaces/$REMOTE/@@")
|
|
# Remove `sigrefs` itself.
|
|
actual=$(echo "$actual" | grep -v "refs/rad/sigrefs$")
|
|
|
|
tmp=$(mktemp -d)
|
|
trap 'rm -rf "$tmp"' 0
|
|
trap 'exit 1' HUP INT TERM
|
|
printf '%s\n' "$signed" > "$tmp/signed"
|
|
printf '%s\n' "$actual" > "$tmp/actual"
|
|
diff --color=always -y --minimal -W 240 "$tmp/signed" "$tmp/actual"
|