Files
git.stella-ops.org/scripts/cli/parity-diff.sh
StellaOps Bot e6119cbe91
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
up
2025-11-24 09:07:40 +02:00

37 lines
934 B
Bash

#!/usr/bin/env bash
set -euo pipefail
# DEVOPS-CLI-43-003: parity diff for CLI golden outputs
EXPECTED_DIR=${EXPECTED_DIR:-"tests/goldens"}
ACTUAL_DIR=${ACTUAL_DIR:-"out/cli-goldens"}
CLI=${CLI:-"dotnet run --project src/Cli/StellaOps.Cli/StellaOps.Cli.csproj --no-build --"}
mkdir -p "$ACTUAL_DIR"
run_case() {
local name=$1
local args=$2
local outfile="${ACTUAL_DIR}/${name}.txt"
echo "[parity] running ${name}: ${args}"
$CLI $args > "$outfile"
}
run_case "help" "--help"
run_case "scan-help" "scan --help"
diffs=0
for expected in $(find "$EXPECTED_DIR" -name '*.txt'); do
rel=${expected#$EXPECTED_DIR/}
actual="${ACTUAL_DIR}/${rel}"
if ! diff -u "$expected" "$actual" > "${ACTUAL_DIR}/${rel}.diff" 2>/dev/null; then
echo "[parity] diff for $rel"
diffs=$((diffs+1))
else
rm -f "${ACTUAL_DIR}/${rel}.diff"
fi
done
echo "[parity] total diffs: $diffs"
echo "$diffs" > "${ACTUAL_DIR}/summary.txt"