review: code simplification and cleanup

This commit is contained in:
2026-06-11 22:50:02 +02:00
parent eeacc57192
commit 1b59f1361f
2 changed files with 36 additions and 6 deletions
+16 -6
View File
@@ -20,15 +20,25 @@ if [[ -n "${FRAG_FILE:-}" && -f "${FRAG_FILE}" ]]; then
checksum="$(sha256sum "$FRAG_FILE" | cut -d' ' -f1)"
fi
json_escape() {
local s="$1"
s="${s//\\/\\\\}"
s="${s//\"/\\\"}"
s="${s//$'\n'/\\n}"
s="${s//$'\r'/\\r}"
s="${s//$'\t'/\\t}"
printf '%s' "$s"
}
cat > "$out" <<JSON
{
"repo": "$FRAG_REPO",
"sha": "$FRAG_SHA",
"artifact": "$FRAG_ARTIFACT",
"digest": "${FRAG_DIGEST:-}",
"repo": "$(json_escape "$FRAG_REPO")",
"sha": "$(json_escape "$FRAG_SHA")",
"artifact": "$(json_escape "$FRAG_ARTIFACT")",
"digest": "$(json_escape "${FRAG_DIGEST:-}")",
"sha256": "$checksum",
"publish_url": "${FRAG_URL:-}",
"run_id": "${FRAG_RUN_ID:-}"
"publish_url": "$(json_escape "${FRAG_URL:-}")",
"run_id": "$(json_escape "${FRAG_RUN_ID:-}")"
}
JSON
echo "emit-release-fragment: wrote $out"
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
cd "$repo_root"
FRAG_REPO='sow-tools' \
FRAG_SHA='abc123' \
FRAG_ARTIFACT='registry.example/sow/sow-tools:"quoted"' \
FRAG_URL=$'https://example.invalid/releases\nnext' \
FRAG_RUN_ID='run-1' \
FRAG_OUT="$tmp/fragment.json" \
./scripts/emit-release-fragment.sh
jq -e '.repo == "sow-tools" and .artifact == "registry.example/sow/sow-tools:\"quoted\"" and (.publish_url | contains("next"))' \
"$tmp/fragment.json" >/dev/null
echo "release-fragment-contract: JSON escapes env values"