chore: import upstream snapshot with attribution
This commit is contained in:
Executable
+83
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
SOURCE_DIR="${ROOT_DIR}/Sources/CodexBarCore/Vendored/CostUsage"
|
||||
OUTPUT_FILE="${ROOT_DIR}/Sources/CodexBarCore/Generated/CodexParserHash.generated.swift"
|
||||
MODE="${1:-write}"
|
||||
|
||||
case "$MODE" in
|
||||
write | --write)
|
||||
CHECK_ONLY=0
|
||||
;;
|
||||
check | --check)
|
||||
CHECK_ONLY=1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [write|--write|check|--check]" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
if command -v shasum >/dev/null 2>&1; then
|
||||
HASH_CMD=(shasum -a 256)
|
||||
elif command -v sha256sum >/dev/null 2>&1; then
|
||||
HASH_CMD=(sha256sum)
|
||||
else
|
||||
echo "error: shasum or sha256sum is required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILE_LIST="$(mktemp)"
|
||||
trap 'rm -f "$FILE_LIST"' EXIT
|
||||
|
||||
find "$SOURCE_DIR" \
|
||||
-type f \
|
||||
-name '*.swift' \
|
||||
! -name '*Claude*' \
|
||||
-print |
|
||||
sed "s#^${ROOT_DIR}/##" |
|
||||
LC_ALL=C sort >"$FILE_LIST"
|
||||
|
||||
HASH="$(
|
||||
while IFS= read -r file; do
|
||||
printf '== %s ==\n' "$file"
|
||||
cat "${ROOT_DIR}/${file}"
|
||||
printf '\n'
|
||||
done <"$FILE_LIST" | "${HASH_CMD[@]}"
|
||||
)"
|
||||
HASH="${HASH%% *}"
|
||||
SHORT_HASH="${HASH:0:16}"
|
||||
|
||||
render_generated() {
|
||||
cat <<SWIFT
|
||||
// Generated by Scripts/regenerate-codex-parser-hash.sh. Do not edit by hand.
|
||||
|
||||
enum CodexParserHash {
|
||||
static let value = "$SHORT_HASH"
|
||||
}
|
||||
SWIFT
|
||||
}
|
||||
|
||||
if [[ "$CHECK_ONLY" -eq 1 ]]; then
|
||||
EXPECTED_FILE="$(mktemp)"
|
||||
trap 'rm -f "$FILE_LIST" "$EXPECTED_FILE"' EXIT
|
||||
render_generated >"$EXPECTED_FILE"
|
||||
if ! cmp -s "$EXPECTED_FILE" "$OUTPUT_FILE"; then
|
||||
echo "error: ${OUTPUT_FILE#${ROOT_DIR}/} is stale. Run Scripts/regenerate-codex-parser-hash.sh and commit the result." >&2
|
||||
if [[ -f "$OUTPUT_FILE" ]]; then
|
||||
diff -u "$OUTPUT_FILE" "$EXPECTED_FILE" >&2 || true
|
||||
else
|
||||
diff -u /dev/null "$EXPECTED_FILE" >&2 || true
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
echo "Codex parser hash is current (${SHORT_HASH})"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$OUTPUT_FILE")"
|
||||
render_generated >"$OUTPUT_FILE"
|
||||
|
||||
echo "Updated ${OUTPUT_FILE#${ROOT_DIR}/} to ${SHORT_HASH}"
|
||||
Reference in New Issue
Block a user