Files
git.stella-ops.org/scripts/cli/parity-diff.sh
2025-12-26 01:48:24 +02:00

37 lines
940 B
Bash

#!/usr/bin/env bash
set -euo pipefail
# DEVOPS-CLI-43-003: parity diff for CLI golden outputs
EXPECTED_DIR=${EXPECTED_DIR:-"src/__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"