- Add .golangci.yml with sensible defaults for the project - Add lint and lint:fix tasks to Taskfile - Remove unused findGitRoot function - Apply gofumpt formatting fixes
100 lines
2.0 KiB
YAML
100 lines
2.0 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
|
|
|
|
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}}"
|