From fd05ca492443c2c4ffa8936da97bb673c257f044 Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Tue, 25 Mar 2025 14:43:56 +0100
Subject: [PATCH] Ongoing work: splitting up nexus-server and clients build
 mechanism into separate makefiles

---
 server/Makefile                | 22 ++++++++++++++++++++++
 server/buildversion/version.go | 15 +++++++++++++++
 server/config/config.go        |  4 +---
 3 files changed, 38 insertions(+), 3 deletions(-)
 create mode 100644 server/Makefile
 create mode 100644 server/buildversion/version.go

diff --git a/server/Makefile b/server/Makefile
new file mode 100644
index 00000000..29794de2
--- /dev/null
+++ b/server/Makefile
@@ -0,0 +1,22 @@
+CURRENT_DATE=$(shell eval "date -u +'%Y-%m-%d at %H:%M:%S'")
+GIT_COMMIT=$(shell eval "git rev-parse HEAD")
+BUILD_FLAGS=-ldflags="-X 'gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/server/buildversion.buildDate=$(CURRENT_DATE)' -X 'gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/server/buildversion.gitCommit=$(GIT_COMMIT)'"
+BUILD_DIR=build
+SERVER_BINARY=nexus-server
+
+help:
+	@echo "Available targets:"
+	@echo "  build      Build nexus-server binaries"
+	@echo "  clean      Delete nexus-server binaries"
+
+$(BUILD_DIR):
+	@mkdir -p $@
+	@echo "[Building nexus-server]"
+	@go build $(BUILD_FLAGS) -o $(BUILD_DIR)/$(SERVER_BINARY)
+	@echo "OK"
+
+clean:
+	@/bin/rm -rf $(BUILD_DIR)
+	@echo "OK"
+
+.PHONY: clean
diff --git a/server/buildversion/version.go b/server/buildversion/version.go
new file mode 100644
index 00000000..f23cfbe7
--- /dev/null
+++ b/server/buildversion/version.go
@@ -0,0 +1,15 @@
+package buildversion
+
+var (
+	// These variables are replaced by ldflags at build time
+	gitCommit = "n/a"
+	buildDate = "n/a"
+)
+
+func GitCommit() string {
+	return gitCommit
+}
+
+func BuildDate() string {
+	return buildDate
+}
diff --git a/server/config/config.go b/server/config/config.go
index 092d9278..68e6d848 100644
--- a/server/config/config.go
+++ b/server/config/config.go
@@ -7,11 +7,9 @@ import (
 	"strings"
 	"sync"
 
+	"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/server/buildversion"
 	"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/server/logger"
 	"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/server/version"
-
-	"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/buildversion"
-
 	"github.com/sirupsen/logrus"
 	"gopkg.in/ini.v1"
 )
-- 
GitLab