ops-jrz1/scripts/check-deploy
Dan 93e694824a Grant devs journal access
Update dev-add to add systemd-journal group and extend check-deploy output.
2026-01-22 11:44:11 -08:00

82 lines
1.7 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
HOST="${1:-ops-jrz1}"
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$repo_root"
echo "== Local working tree =="
git status -sb
echo
echo "== Commits ahead of origin/main =="
if git rev-parse --verify origin/main >/dev/null 2>&1; then
git log --oneline origin/main..HEAD || true
else
echo "origin/main not found (run: git fetch origin)"
fi
echo
echo "== Local HEAD =="
local_head="$(git rev-parse HEAD)"
echo "$local_head"
echo
echo "== Remote configuration revision ($HOST) =="
remote_rev="$(ssh "root@${HOST}" 'nixos-version --configuration-revision' || true)"
if [[ -z "$remote_rev" || "$remote_rev" == "" ]]; then
echo "(empty)"
else
echo "$remote_rev"
fi
echo
echo "== Comparison =="
if [[ -n "$remote_rev" && "$remote_rev" == "$local_head" ]]; then
echo "OK: remote matches local HEAD"
else
echo "NOTE: remote does not match local HEAD"
echo "Remote: ${remote_rev:-<empty>}"
echo "Local: $local_head"
fi
echo
echo "== Remote current system =="
ssh "root@${HOST}" 'readlink /run/current-system'
echo
echo "== Musiclink local repo HEAD =="
musiclink_repo="/home/dan/proj/musiclink"
if [[ -d "$musiclink_repo/.git" ]]; then
git -C "$musiclink_repo" rev-parse HEAD
else
echo "(missing $musiclink_repo)"
fi
echo
echo "== Musiclink flake.lock rev =="
python3 - <<'PY'
import json
from pathlib import Path
lock_path = Path("flake.lock")
try:
data = json.loads(lock_path.read_text())
rev = data["nodes"]["musiclink"]["locked"].get("rev")
print(rev or "(missing rev)")
except Exception as exc:
print(f"(error reading flake.lock: {exc})")
PY
echo
echo "== Musiclink running ExecStart =="
ssh "root@${HOST}" 'systemctl show -p ExecStart musiclink --value'