From 661e4b7d3fc1d93b4d291087faa31934a5de10ec Mon Sep 17 00:00:00 2001 From: Drew Bednar Date: Sun, 22 Jun 2025 15:15:33 -0400 Subject: [PATCH] Try to clean up intial tag --- Makefile | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 2271465..74616f7 100644 --- a/Makefile +++ b/Makefile @@ -5,13 +5,15 @@ DIST_DIR := ./dist VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "0.1.0-dev") BUILD_TIME := $(shell date -u '+%Y-%m-%d_%H:%M:%S') GIT_COMMIT := $(shell git rev-parse HEAD 2>/dev/null || echo "unknown") -DEB_PACKAGE_NAME := $(BINARY_NAME)_$(VERSION)_amd64.deb PKG_PATH=git.runcible.io/${REPO_OWNER}/${REPO_NAME}/cmd +# Attempt to get the latest tag and clean the 'v' prefix. +# If no tags exist, this command will produce an empty string, and `|| true` prevents make from erroring out. +CLEAN_TAG := $(shell git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//' || true) # Strict, Debian-compliant version for packaging. -# It tries to find the latest tag (e.g., v1.2.3) and uses that. +# It tries to find the latest tag (e.g., v1.2.3) from CLEAN_TAG and uses that. # If no tags exist, it defaults to "0.1.0-1", which is a valid starting version for a Debian package. -DEB_VERSION := $(shell TAG=$$(git describe --tags --abbrev=0 2>/dev/null); if [ -n "$$TAG" ]; then echo $$TAG | sed 's/^v//'; else echo "0.1.0-1"; fi) - +DEB_VERSION := $(if $(CLEAN_TAG),$(CLEAN_TAG),0.1.0-1) +DEB_PACKAGE_NAME := $(BINARY_NAME)_$(DEB_VERSION)_amd64.deb # Default target .PHONY: all @@ -39,28 +41,28 @@ deb: build @mkdir -p $(DIST_DIR) @mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION) @mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN - @mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/opt/$(BINARY_NAME) + @mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/usr/local/bin # Copy binary - @cp $(BUILD_DIR)/$(BINARY_NAME) $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/opt/$(BINARY_NAME)/ - @chmod +x $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/opt/$(BINARY_NAME)/$(BINARY_NAME) + @cp $(BUILD_DIR)/$(BINARY_NAME) $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/usr/local/bin/ + @chmod +x $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/usr/local/$(BINARY_NAME)/$(BINARY_NAME) # Create control file - @echo "Package: $(BINARY_NAME)" > $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/control - @echo "Version: $(VERSION)" >> $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/control - @echo "Architecture: amd64" >> $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/control - @echo "Maintainer: Bishop Maintainer " >> $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/control - @echo "Description: Bishop - A Go application" >> $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/control - @echo " Bishop is a Go application that provides various functionalities." >> $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/control + @echo "Package: $(BINARY_NAME)" > $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/control + @echo "Version: $(VERSION)" >> $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/control + @echo "Architecture: amd64" >> $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/control + @echo "Maintainer: ${REPO_NAME} Maintainer " >> $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/control + @echo "Description: ${REPO_NAME} - A Go application" >> $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/control + @echo " ${REPO_NAME} is a Go application that provides various functionalities." >> $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/control # Copy changelog if it exists @if [ -f changelog ]; then \ - cp changelog $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN/; \ + cp changelog $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN/; \ fi # Build the .deb package - @cd $(DIST_DIR) && dpkg-deb --build $(BINARY_NAME)_$(VERSION) - @mv $(DIST_DIR)/$(BINARY_NAME)_$(VERSION).deb $(DIST_DIR)/$(DEB_PACKAGE_NAME) + @cd $(DIST_DIR) && dpkg-deb --build $(BINARY_NAME)_$(DEB_VERSION) + @mv $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION).deb $(DIST_DIR)/$(DEB_PACKAGE_NAME) @echo "Debian package created: $(DIST_DIR)/$(DEB_PACKAGE_NAME)" # Install dependencies