# Check if lockfile needs updating
if git diff --cached --name-only | grep -q "^package.json$"; then
    echo "🔒 Updating lockfile..."
    pnpm lock
    git add pnpm-lock.yaml
fi

# Check if entry needs rebuilding
# Rebuild if: entry.ts/esbuild.config.js/.ts files are staged, OR if entry is out of date
NEEDS_REBUILD=false

# Check staged files
if git diff --cached --name-only | grep -qE "^(entry\.ts|esbuild\.config\.js|.*\.ts)$"; then
    NEEDS_REBUILD=true
fi

# Check if entry is out of date compared to entry.ts
if [ -f entry.ts ] && [ -f entry ]; then
    if [ entry.ts -nt entry ] || [ esbuild.config.js -nt entry ]; then
        NEEDS_REBUILD=true
    fi
fi

if [ "$NEEDS_REBUILD" = true ]; then
    echo "🔨 Building action..."
    pnpm build
    git add entry
fi
