Files
prompts/script/update-policy
T
clawbot 917fe4bc1d
check / check (push) Canceled after 0s
Rename script/install to script/fetch-policy
By convention, and in scripts-to-rule-them-all, script/install installs
the program itself. This script fetches the shared policy files into a
repo. The make target, the test names and the messages take the new
name. Behaviour is unchanged.

Model: opus-5-5
2026-11-10 20:19:00 +00:00

44 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# script/update-policy: bring this repo up to standards. It fetches the
# current script/fetch-policy from the prompts repo over HTTP, runs it
# on this repo and commits the files it wrote. It does not push.
# Identical in all repos. Our own extension to scripts-to-rule-them-all.
set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
FETCH_POLICY_URL="https://git.eeqj.de/sneak/prompts/raw/branch/main/script/fetch-policy"
die() {
echo "update-policy: $*" >&2
exit 1
}
main() {
[ "$#" -eq 0 ] || die "usage: script/update-policy"
cd "$ROOT"
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
curl --fail --silent --show-error --max-time 60 \
--output "$tmp/fetch-policy" "$FETCH_POLICY_URL" ||
die "cannot fetch $FETCH_POLICY_URL"
sh "$tmp/fetch-policy" "$ROOT" > "$tmp/written"
commit="$(head -n 1 "$tmp/written")"
paths="$(tail -n +2 "$tmp/written")"
for path in $paths; do
git add -- "$path"
done
if git diff --cached --quiet -- $paths; then
echo "update-policy: already at prompts $commit, nothing to commit"
else
git commit -m "Update policy files from prompts $commit" -- $paths
fi
}
main "$@"