Files
unitdore/Makefile
T
warkanum d1d0889eb3 build: bump Gentoo and Void versions in release-version
Move version bumping into scripts/bump-version.sh, rename the ebuild per release, reset the Void checksum, and add make pkg-checksums to fill it after the release.
2026-10-12 20:57:37 +02:00

68 lines
2.1 KiB
Makefile

BINARY := unitdore
INSTALL_DIR := /usr/bin
CONFIG_DIR := /etc/unitdore
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
LDFLAGS := -ldflags "-X github.com/warkanum/unitdore/cmd.version=$(VERSION)"
.PHONY: all build install uninstall test lint clean release-version pkg-checksums
all: build
## build: compile the binary
build:
go build $(LDFLAGS) -o $(BINARY) .
## install: install binary, man page, and create config dir
install: build
install -Dm755 $(BINARY) $(INSTALL_DIR)/$(BINARY)
install -Dm644 docs/unitdore.1 /usr/share/man/man1/unitdore.1
mkdir -p $(CONFIG_DIR)
@echo "Installed to $(INSTALL_DIR)/$(BINARY)"
@echo "Config dir: $(CONFIG_DIR)"
## uninstall: remove binary and man page
uninstall:
rm -f $(INSTALL_DIR)/$(BINARY)
rm -f /usr/share/man/man1/unitdore.1
@echo "Removed $(INSTALL_DIR)/$(BINARY)"
## test: run all unit tests
test:
go test ./... -v
## test-short: run tests without verbose output
test-short:
go test ./...
## lint: run go vet
lint:
go vet ./...
## clean: remove built binary
clean:
rm -f $(BINARY)
## release-version: bump patch version, update source and package versions, commit, tag, and push
release-version:
@CURRENT=$$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0"); \
MAJOR=$$(echo $$CURRENT | sed 's/v\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'); \
MINOR=$$(echo $$CURRENT | sed 's/v\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'); \
PATCH=$$(echo $$CURRENT | sed 's/v\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'); \
NEXT="v$$MAJOR.$$MINOR.$$((PATCH + 1))"; \
PKGVER="$$MAJOR.$$MINOR.$$((PATCH + 1))"; \
echo "Current: $$CURRENT → Next: $$NEXT"; \
scripts/bump-version.sh "$$PKGVER"; \
git add -A cmd/root.go pkg; \
git commit -m "chore(release): update package version to $$PKGVER"; \
git tag -a "$$NEXT" -m "Release $$NEXT"; \
git push origin HEAD "$$NEXT"; \
echo "Pushed $$NEXT — release workflow triggered"
## pkg-checksums: fill the Void checksum from the published release (run after release)
pkg-checksums:
scripts/update-checksums.sh
## help: show this help
help:
@grep -E '^## ' Makefile | sed 's/## / /'