fix(a2ui): skip bundle when inputs unchanged
This commit is contained in:
@@ -56,7 +56,7 @@
|
|||||||
"protocol:gen": "tsx scripts/protocol-gen.ts",
|
"protocol:gen": "tsx scripts/protocol-gen.ts",
|
||||||
"protocol:gen:swift": "tsx scripts/protocol-gen-swift.ts",
|
"protocol:gen:swift": "tsx scripts/protocol-gen-swift.ts",
|
||||||
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/ClawdisProtocol/GatewayModels.swift",
|
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/ClawdisProtocol/GatewayModels.swift",
|
||||||
"canvas:a2ui:bundle": "pnpm -s exec tsc -p vendor/a2ui/renderers/lit/tsconfig.json && rolldown -c apps/shared/ClawdisKit/Tools/CanvasA2UI/rolldown.config.mjs"
|
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
|
|||||||
45
scripts/bundle-a2ui.sh
Executable file
45
scripts/bundle-a2ui.sh
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
|
HASH_FILE="$ROOT_DIR/src/canvas-host/a2ui/.bundle.hash"
|
||||||
|
|
||||||
|
INPUT_PATHS=(
|
||||||
|
"$ROOT_DIR/package.json"
|
||||||
|
"$ROOT_DIR/pnpm-lock.yaml"
|
||||||
|
"$ROOT_DIR/vendor/a2ui/renderers/lit"
|
||||||
|
"$ROOT_DIR/apps/shared/ClawdisKit/Tools/CanvasA2UI"
|
||||||
|
)
|
||||||
|
|
||||||
|
collect_files() {
|
||||||
|
local path
|
||||||
|
for path in "${INPUT_PATHS[@]}"; do
|
||||||
|
if [[ -d "$path" ]]; then
|
||||||
|
find "$path" -type f -print0
|
||||||
|
else
|
||||||
|
printf '%s\0' "$path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
compute_hash() {
|
||||||
|
collect_files \
|
||||||
|
| LC_ALL=C sort -z \
|
||||||
|
| xargs -0 shasum -a 256 \
|
||||||
|
| shasum -a 256 \
|
||||||
|
| awk '{print $1}'
|
||||||
|
}
|
||||||
|
|
||||||
|
current_hash="$(compute_hash)"
|
||||||
|
if [[ -f "$HASH_FILE" ]]; then
|
||||||
|
previous_hash="$(cat "$HASH_FILE")"
|
||||||
|
if [[ "$previous_hash" == "$current_hash" ]]; then
|
||||||
|
echo "A2UI bundle up to date; skipping."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm -s exec tsc -p vendor/a2ui/renderers/lit/tsconfig.json
|
||||||
|
rolldown -c apps/shared/ClawdisKit/Tools/CanvasA2UI/rolldown.config.mjs
|
||||||
|
|
||||||
|
echo "$current_hash" > "$HASH_FILE"
|
||||||
Reference in New Issue
Block a user