mirror of
https://github.com/ivuorinen/actions.git
synced 2026-03-08 07:56:38 +00:00
Add jq availability checks to hook scripts (block-rules-yml.sh, post-edit-write.sh) and wrap actionlint call in command -v guard, consistent with project rules #2 and #10. Fix validate skill to reflect actual make all pipeline order and note that make test runs separately.
47 lines
1.0 KiB
Bash
Executable File
47 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
# Read JSON input from stdin to get the file path
|
|
if ! command -v jq >/dev/null 2>&1; then
|
|
echo "Error: jq is required but not found" >&2
|
|
exit 1
|
|
fi
|
|
|
|
INPUT=$(cat)
|
|
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.filePath // empty')
|
|
|
|
if [ -z "$FILE_PATH" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
case "$FILE_PATH" in
|
|
*/rules.yml)
|
|
# rules.yml should not be reached here (blocked by PreToolUse),
|
|
# but skip formatting just in case
|
|
exit 0
|
|
;;
|
|
*.py)
|
|
ruff format --quiet "$FILE_PATH" 2>/dev/null || true
|
|
ruff check --fix --quiet "$FILE_PATH" 2>/dev/null || true
|
|
;;
|
|
*.sh)
|
|
shfmt -w "$FILE_PATH" 2>/dev/null || true
|
|
shellcheck "$FILE_PATH" 2>&1 || true
|
|
;;
|
|
*.yml | *.yaml | *.json)
|
|
npx prettier --write "$FILE_PATH" 2>/dev/null || true
|
|
;;
|
|
*.md)
|
|
npx prettier --write "$FILE_PATH" 2>/dev/null || true
|
|
;;
|
|
esac
|
|
|
|
# Run actionlint on action.yml files
|
|
case "$FILE_PATH" in
|
|
*/action.yml)
|
|
if command -v actionlint >/dev/null 2>&1; then
|
|
actionlint "$FILE_PATH" 2>&1 || true
|
|
fi
|
|
;;
|
|
esac
|