Files
nib-v1/Makefile
T
lerko 36999cd825 feat(tui): add bubbletea terminal UI with entity list, detail, and capture
Adds `nib tui` command and `make tui` target. Scrollable entity list
with j/k navigation, enter for detail view, `a` to capture new entries
using the existing parse grammar, and `d` to delete.
2026-05-17 20:07:45 -04:00

72 lines
2.1 KiB
Makefile

BINARY := nib
MODULE := github.com/lerko/nib
GOFLAGS := -trimpath
.PHONY: build dev tui watch test lint fmt vet clean run cert help
## —— Build ——————————————————————————————————
build: ## Build production binary
go build $(GOFLAGS) -o $(BINARY) .
dev: ## Build and run with default serve
go run . serve
tui: ## Launch the terminal UI
go run . tui
watch: ## Live-reload dev server (requires air)
air
## —— Quality ————————————————————————————————
test: ## Run all tests
go test ./...
test-v: ## Run all tests (verbose)
go test -v ./...
test-cover: ## Run tests with coverage report
go test -coverprofile=coverage.out ./...
go tool cover -func=coverage.out
@rm -f coverage.out
lint: vet fmt-check ## Run all linters
vet: ## Run go vet
go vet ./...
fmt: ## Format all Go files
gofmt -w .
fmt-check: ## Check formatting (fails if unformatted)
@test -z "$$(gofmt -l .)" || (echo "unformatted files:" && gofmt -l . && exit 1)
## —— Utility ————————————————————————————————
cert: ## Generate self-signed dev TLS cert (certs/)
@mkdir -p certs
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
-nodes -keyout certs/dev.key -out certs/dev.crt -days 365 \
-subj "/CN=localhost"
@echo " certs/dev.crt and certs/dev.key ready"
@echo " usage: make run ARGS=\"serve --tls-cert certs/dev.crt --tls-key certs/dev.key\""
clean: ## Remove build artifacts
rm -f $(BINARY) coverage.out
run: build ## Build then run with args (usage: make run ARGS="serve")
./$(BINARY) $(ARGS)
tidy: ## Tidy and verify module dependencies
go mod tidy
go mod verify
## —— Help ———————————————————————————————————
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}'
.DEFAULT_GOAL := help