docman/Makefile

52 lines
1.0 KiB
Makefile

.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 ./...