43 lines
1.1 KiB
Makefile
43 lines
1.1 KiB
Makefile
BINARY := tm
|
|
CMD := ./cmd/task-master
|
|
VERSION_PKG := task/internal/version
|
|
GIT_HASH := $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown)
|
|
LDFLAGS := -X $(VERSION_PKG).BuildVersion=$(GIT_HASH)
|
|
|
|
# Default: Go workspace bin (e.g. ~/go/bin). Override with: make install PREFIX=...
|
|
GOPATH ?= $(shell go env GOPATH)
|
|
PREFIX ?= $(GOPATH)
|
|
INSTALL_BIN := $(PREFIX)/bin
|
|
DEV_HOME := $(CURDIR)/.dev-home
|
|
|
|
.PHONY: build run run-dev install uninstall test version demo
|
|
|
|
build:
|
|
go build -ldflags "$(LDFLAGS)" -o bin/$(BINARY) $(CMD)
|
|
|
|
run: build
|
|
./bin/$(BINARY)
|
|
|
|
# Sandbox: isolated config/data under ./.dev-home (does not touch ~/.config)
|
|
run-dev: build
|
|
TASK_MASTER_HOME=$(DEV_HOME) ./bin/$(BINARY)
|
|
|
|
install: build
|
|
install -d $(INSTALL_BIN)
|
|
install -m 755 bin/$(BINARY) $(INSTALL_BIN)/$(BINARY)
|
|
@echo "installed $(INSTALL_BIN)/$(BINARY)"
|
|
|
|
uninstall:
|
|
rm -f $(INSTALL_BIN)/$(BINARY)
|
|
@echo "removed $(INSTALL_BIN)/$(BINARY)"
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
version: build
|
|
./bin/$(BINARY) version
|
|
|
|
# Record a full feature walkthrough (requires vhs: https://github.com/charmbracelet/vhs)
|
|
demo:
|
|
vhs demo.tape
|