#!/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}"