.PHONY: build run install clean dev deps BINARY=docman VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") BUILD_DIR=build # Build flags LDFLAGS=-ldflags "-s -w -X main.Version=$(VERSION)" CGO_CFLAGS=-DSQLITE_ENABLE_FTS5 TAGS=-tags "fts5" build: @mkdir -p $(BUILD_DIR) CGO_CFLAGS="$(CGO_CFLAGS)" go build $(TAGS) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY) ./cmd/docman run: build ./$(BUILD_DIR)/$(BINARY) dev: go run ./cmd/docman -port 8200 deps: go mod download go mod tidy # Install to ~/bin install: build @mkdir -p $(HOME)/bin cp $(BUILD_DIR)/$(BINARY) $(HOME)/bin/ @echo "Installed to $(HOME)/bin/$(BINARY)" # Install systemd service install-service: @mkdir -p $(HOME)/.config/systemd/user @envsubst < deploy/docman.service > $(HOME)/.config/systemd/user/docman.service systemctl --user daemon-reload systemctl --user enable docman @echo "Service installed. Start with: systemctl --user start docman" clean: rm -rf $(BUILD_DIR) # Development helpers test: go test -v ./... lint: golangci-lint run fmt: go fmt ./...