Files
claude-statusline/Taskfile.yml

110 lines
2.4 KiB
YAML

# https://taskfile.dev
version: '3'
vars:
BINARY: statusline
LDFLAGS: -s -w
tasks:
default:
desc: Build the statusline binary
cmds:
- task: build
build:
desc: Build with stripped symbols
cmds:
- go build -ldflags="{{.LDFLAGS}}" -o {{.BINARY}} .
sources:
- "*.go"
- go.mod
- go.sum
generates:
- "{{.BINARY}}"
build:debug:
desc: Build with debug symbols
cmds:
- go build -o {{.BINARY}} .
run:
desc: Run with test fixture
deps: [build]
cmds:
- cat test/fixture.json | ./{{.BINARY}}
test:
desc: Run with test fixture and show output
deps: [build]
cmds:
- echo "=== Output ==="
- cat test/fixture.json | ./{{.BINARY}}
- echo ""
- echo "=== Timing (single run) ==="
- time sh -c 'cat test/fixture.json | ./{{.BINARY}} > /dev/null'
bench:
desc: Benchmark Go vs Shell (100 runs)
deps: [build]
cmds:
- |
echo "=== Pure Go (100 runs) ==="
time for i in $(seq 1 100); do cat test/fixture.json | ./{{.BINARY}} >/dev/null; done
echo ""
echo "=== Shell (100 runs) ==="
time for i in $(seq 1 100); do cat test/fixture.json | ./statusline.sh >/dev/null; done
silent: false
bench:go:
desc: Benchmark Go only (100 runs)
deps: [build]
cmds:
- |
echo "=== Pure Go (100 runs) ==="
time for i in $(seq 1 100); do cat test/fixture.json | ./{{.BINARY}} >/dev/null; done
tidy:
desc: Run go mod tidy
cmds:
- go mod tidy
lint:
desc: Run golangci-lint
cmds:
- golangci-lint run
lint:fix:
desc: Run golangci-lint with auto-fix
cmds:
- golangci-lint run --fix
modernize:
desc: Apply gopls modernize fixes
cmds:
- go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix ./...
modernize:test:
desc: Apply gopls modernize fixes including tests
cmds:
- go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...
clean:
desc: Remove built binary
cmds:
- rm -f {{.BINARY}}
size:
desc: Show binary size
deps: [build]
cmds:
- ls -lh {{.BINARY}}
install:
desc: Install to ~/.claude/
deps: [build]
cmds:
- mkdir -p ~/.claude
- cp {{.BINARY}} ~/.claude/{{.BINARY}}
- echo "Installed to ~/.claude/{{.BINARY}}"