54 lines
1.8 KiB
Makefile
54 lines
1.8 KiB
Makefile
BINARY := lazy-update-manager
|
|
PREFIX ?= $(HOME)/.local
|
|
|
|
# Versioning: try to use git describe, fall back to 'dev'
|
|
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
|
|
BUILD_TIME := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
|
|
.PHONY: build desktop desktop-dist install install-user-service enable-user-service test fmt clean
|
|
|
|
build:
|
|
@echo "Building $(BINARY) (version: $(VERSION), build time: $(BUILD_TIME))"
|
|
go build -buildvcs=false -ldflags "-X 'lazy-update-manager/internal/version.Version=$(VERSION)' -X 'lazy-update-manager/internal/version.BuildTime=$(BUILD_TIME)'" -o bin/$(BINARY) ./cmd/lazy-update-manager
|
|
|
|
desktop:
|
|
npm run start
|
|
|
|
desktop-dist:
|
|
npm run dist
|
|
|
|
install: build
|
|
@mkdir -p $(PREFIX)/bin
|
|
@mkdir -p $(PREFIX)/share/applications
|
|
@echo "Installing $(BINARY) to $(PREFIX)/bin"
|
|
@if [ -f "$(PREFIX)/bin/$(BINARY)" ]; then \
|
|
if cmp -s bin/$(BINARY) "$(PREFIX)/bin/$(BINARY)"; then \
|
|
echo "Existing binary is identical; skipping overwrite."; \
|
|
exit 0; \
|
|
else \
|
|
ts=$$(date +%Y%m%d%H%M%S); \
|
|
mv "$(PREFIX)/bin/$(BINARY)" "$(PREFIX)/bin/$(BINARY)-$$ts.bak"; \
|
|
echo "Backed up previous binary to $(PREFIX)/bin/$(BINARY)-$$ts.bak"; \
|
|
fi; \
|
|
fi; \
|
|
install -Dm755 bin/$(BINARY) $(PREFIX)/bin/$(BINARY); \
|
|
install -Dm644 systemd/lazy-update-manager.desktop $(PREFIX)/share/applications/lazy-update-manager.desktop; \
|
|
echo "Installed $(BINARY) to $(PREFIX)/bin"
|
|
|
|
install-user-service: install
|
|
install -Dm644 systemd/lazy-update-manager.service $(HOME)/.config/systemd/user/lazy-update-manager.service
|
|
install -Dm644 systemd/lazy-update-manager.timer $(HOME)/.config/systemd/user/lazy-update-manager.timer
|
|
systemctl --user daemon-reload
|
|
|
|
enable-user-service: install-user-service
|
|
systemctl --user enable --now lazy-update-manager.timer
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
fmt:
|
|
gofmt -w ./cmd ./internal
|
|
|
|
clean:
|
|
rm -rf bin
|