From 45f29f3fbe0989c2f8cc945e946427a4d1070a1c Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Mon, 1 Oct 2018 12:23:11 +0200
Subject: [PATCH] versionning for Go sources

---
 asapo_tools/src/asapo_tools/main/asapo.go     |  4 ++--
 .../src/asapo_tools/version/version.go        | 23 -------------------
 .../src/asapo_tools/version/version_lib.go.in | 10 --------
 .../src/asapo_authorizer/main/authorizer.go   |  5 ++++
 .../server/server_nottested.go                |  2 ++
 broker/src/asapo_broker/main/broker.go        |  5 ++++
 .../asapo_broker/server/server_nottested.go   |  2 ++
 common/go/src/asapo_common/version/version.go | 17 +++++++-------
 .../src/asapo_discovery/main/discovery.go     |  6 +++++
 .../server/server_nottested.go                |  2 ++
 10 files changed, 33 insertions(+), 43 deletions(-)
 delete mode 100644 asapo_tools/src/asapo_tools/version/version.go
 delete mode 100644 asapo_tools/src/asapo_tools/version/version_lib.go.in

diff --git a/asapo_tools/src/asapo_tools/main/asapo.go b/asapo_tools/src/asapo_tools/main/asapo.go
index e32688931..66d5829ec 100644
--- a/asapo_tools/src/asapo_tools/main/asapo.go
+++ b/asapo_tools/src/asapo_tools/main/asapo.go
@@ -4,7 +4,7 @@ import (
 	"flag"
 	"fmt"
 	"os"
-	"asapo_tools/version"
+	"asapo_common/version"
 	"asapo_tools/cli"
 )
 
@@ -14,7 +14,7 @@ var (
 
 func main() {
 
-	if ret := version.ShowVersion(os.Stdout, "asapo"); ret {
+	if ret := version.ShowVersion(os.Stdout, "ASAPO"); ret {
 		return
 	}
 
diff --git a/asapo_tools/src/asapo_tools/version/version.go b/asapo_tools/src/asapo_tools/version/version.go
deleted file mode 100644
index e2427a17c..000000000
--- a/asapo_tools/src/asapo_tools/version/version.go
+++ /dev/null
@@ -1,23 +0,0 @@
-package version
-
-import (
-	"flag"
-	"fmt"
-	"io"
-	"os"
-)
-
-var version, buildTime, gitCommit, shortVersion string
-
-func ShowVersion(w io.Writer, name string) bool {
-	flags := flag.NewFlagSet("version", flag.ExitOnError)
-	flag.Bool("version", false, "Print version information") // to have it in main help
-	flVersion := flags.Bool("version", false, "Print version information")
-	flags.Bool("help", false, "Print usage") // define help flag but ignore it
-	flags.Parse(os.Args[1:])
-	if *flVersion {
-		fmt.Fprintf(w, "%s version %s, build time %s\n", name, version, buildTime)
-		return true
-	}
-	return false
-}
diff --git a/asapo_tools/src/asapo_tools/version/version_lib.go.in b/asapo_tools/src/asapo_tools/version/version_lib.go.in
deleted file mode 100644
index 3fe1989db..000000000
--- a/asapo_tools/src/asapo_tools/version/version_lib.go.in
+++ /dev/null
@@ -1,10 +0,0 @@
-package version
-
-// Default build-time variable for library-import.
-// This file is overridden on build with build-time informations.
-func init(){
-	gitCommit = "@VERSION_SHA1@"
-	version   = "@VERSION@"
-	shortVersion   = "@VERSION_SHORT@"
-	buildTime = "@TIMESTAMP@"
-}
diff --git a/authorizer/src/asapo_authorizer/main/authorizer.go b/authorizer/src/asapo_authorizer/main/authorizer.go
index 0916ddbed..9f4329909 100644
--- a/authorizer/src/asapo_authorizer/main/authorizer.go
+++ b/authorizer/src/asapo_authorizer/main/authorizer.go
@@ -5,6 +5,7 @@ package main
 import (
 	log "asapo_common/logger"
 	"asapo_authorizer/server"
+	"asapo_common/version"
 	"flag"
 	"os"
 )
@@ -16,6 +17,10 @@ func PrintUsage() {
 func main() {
 	var fname = flag.String("config", "", "config file path")
 
+	if ret := version.ShowVersion(os.Stdout, "ASAPO Authorizer"); ret {
+		return
+	}
+
 	log.SetSoucre("authorizer")
 
 	flag.Parse()
diff --git a/authorizer/src/asapo_authorizer/server/server_nottested.go b/authorizer/src/asapo_authorizer/server/server_nottested.go
index 6ad0c98f3..54c2fb20a 100644
--- a/authorizer/src/asapo_authorizer/server/server_nottested.go
+++ b/authorizer/src/asapo_authorizer/server/server_nottested.go
@@ -5,6 +5,7 @@ package server
 import (
 	log "asapo_common/logger"
 	"asapo_common/utils"
+	"asapo_common/version"
 	"errors"
 	"net/http"
 	"strconv"
@@ -12,6 +13,7 @@ import (
 
 func Start() {
 	mux := utils.NewRouter(listRoutes)
+	log.Info("Starting ASAPO Authorizer, version " + version.GetVersion())
 	log.Info("Listening on port: " + strconv.Itoa(settings.Port))
 	log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP)))
 }
diff --git a/broker/src/asapo_broker/main/broker.go b/broker/src/asapo_broker/main/broker.go
index e4b9c6e74..f9a41942c 100644
--- a/broker/src/asapo_broker/main/broker.go
+++ b/broker/src/asapo_broker/main/broker.go
@@ -6,6 +6,7 @@ import (
 	"asapo_broker/database"
 	"asapo_broker/server"
 	log "asapo_common/logger"
+	"asapo_common/version"
 	"flag"
 	"os"
 )
@@ -21,6 +22,10 @@ func PrintUsage() {
 func main() {
 	var fname = flag.String("config", "", "config file path")
 
+	if ret := version.ShowVersion(os.Stdout, "ASAPO Broker"); ret {
+		return
+	}
+
 	log.SetSoucre("broker")
 	flag.Parse()
 	if *fname == "" {
diff --git a/broker/src/asapo_broker/server/server_nottested.go b/broker/src/asapo_broker/server/server_nottested.go
index c9febf74b..943277aa7 100644
--- a/broker/src/asapo_broker/server/server_nottested.go
+++ b/broker/src/asapo_broker/server/server_nottested.go
@@ -5,6 +5,7 @@ package server
 import (
 	log "asapo_common/logger"
 	"asapo_common/utils"
+	"asapo_common/version"
 	"errors"
 	"net/http"
 	"strconv"
@@ -19,6 +20,7 @@ func StartStatistics() {
 func Start() {
 	StartStatistics()
 	mux := utils.NewRouter(listRoutes)
+	log.Info("Starting Asapo Broker, version " + version.GetVersion())
 	log.Info("Listening on port: " + strconv.Itoa(settings.Port))
 	log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP)))
 }
diff --git a/common/go/src/asapo_common/version/version.go b/common/go/src/asapo_common/version/version.go
index 25a3835dc..d4674f37b 100644
--- a/common/go/src/asapo_common/version/version.go
+++ b/common/go/src/asapo_common/version/version.go
@@ -4,19 +4,20 @@ import (
 	"flag"
 	"fmt"
 	"io"
-	"os"
 )
 
-var version
+var version string
+
+func GetVersion() string {
+    return version
+}
 
 func ShowVersion(w io.Writer, name string) bool {
-	flags := flag.NewFlagSet("version", flag.ExitOnError)
-	flag.Bool("version", false, "Print version information") // to have it in main help
-	flVersion := flags.Bool("version", false, "Print version information")
-	flags.Bool("help", false, "Print usage") // define help flag but ignore it
-	flags.Parse(os.Args[1:])
+
+	flVersion := flag.Bool("v", false, "Print version information")
+	flag.Parse()
 	if *flVersion {
-		fmt.Fprintf(w, "%s version %s\n", name, version)
+		fmt.Fprintf(w, "%s, version %s\n", name, version)
 		return true
 	}
 	return false
diff --git a/discovery/src/asapo_discovery/main/discovery.go b/discovery/src/asapo_discovery/main/discovery.go
index d78d64898..e4bd21e4a 100644
--- a/discovery/src/asapo_discovery/main/discovery.go
+++ b/discovery/src/asapo_discovery/main/discovery.go
@@ -5,6 +5,7 @@ package main
 import (
 	"flag"
 	log "asapo_common/logger"
+    "asapo_common/version"
 	"asapo_discovery/server"
 	"os"
 	"asapo_discovery/request_handler"
@@ -29,6 +30,11 @@ func PrintUsage() {
 func main() {
 	var fname = flag.String("config", "", "config file path")
 
+	if ret := version.ShowVersion(os.Stdout, "ASAPO Discovery"); ret {
+		return
+	}
+
+
     log.SetSoucre("discovery")
 	flag.Parse()
 	if *fname == "" {
diff --git a/discovery/src/asapo_discovery/server/server_nottested.go b/discovery/src/asapo_discovery/server/server_nottested.go
index 3b98cf5ea..091db8e20 100644
--- a/discovery/src/asapo_discovery/server/server_nottested.go
+++ b/discovery/src/asapo_discovery/server/server_nottested.go
@@ -5,12 +5,14 @@ package server
 import (
 	log "asapo_common/logger"
 	"asapo_common/utils"
+    "asapo_common/version"
 	"net/http"
 	"strconv"
 )
 
 func Start() {
 	mux := utils.NewRouter(listRoutes)
+	log.Info("Starting ASAPO Discovery, version " + version.GetVersion())
 	log.Info("Listening on port: " + strconv.Itoa(settings.Port))
 	log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP)))
 }
-- 
GitLab