22 lines
857 B
Bash
Executable File
22 lines
857 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
LABEL="${1:-worktree}"
|
|
STATUS_OUTPUT="$(git status --short 2>/dev/null || true)"
|
|
BLOCKER_THRESHOLD="${WORKTREE_BLOCKER_THRESHOLD:-50}"
|
|
|
|
if [[ -z "$STATUS_OUTPUT" ]]; then
|
|
echo "WORKTREE_STATUS label=${LABEL} state=clean tracked_modified=0 untracked=0 total=0 commit_hint=none severity=normal"
|
|
exit 0
|
|
fi
|
|
|
|
TRACKED_MODIFIED=$(printf '%s\n' "$STATUS_OUTPUT" | awk 'NF && $1 !~ /^\?\?/ { count++ } END { print count+0 }')
|
|
UNTRACKED=$(printf '%s\n' "$STATUS_OUTPUT" | awk '$1 ~ /^\?\?/ { count++ } END { print count+0 }')
|
|
TOTAL=$((TRACKED_MODIFIED + UNTRACKED))
|
|
SEVERITY="warning"
|
|
if [[ "$TOTAL" -gt "$BLOCKER_THRESHOLD" ]]; then
|
|
SEVERITY="blocker"
|
|
fi
|
|
|
|
echo "WORKTREE_STATUS label=${LABEL} state=dirty tracked_modified=${TRACKED_MODIFIED} untracked=${UNTRACKED} total=${TOTAL} commit_hint=needed severity=${SEVERITY}"
|