From da72f9d59c6d4e4ddb76dc3f54c5f9396624f58c Mon Sep 17 00:00:00 2001
From: Angelo Capossele <angelocapossele@gmail.com>
Date: Mon, 24 Feb 2020 14:15:21 +0000
Subject: [PATCH] Feat: Add --version to cli (#264)

---
 main.go                         |  1 +
 packages/parameter/parameter.go |  1 -
 plugins/cli/plugin.go           | 11 +++++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/main.go b/main.go
index 1c86830e..b45501ba 100644
--- a/main.go
+++ b/main.go
@@ -29,6 +29,7 @@ import (
 )
 
 func main() {
+	cli.PrintVersion()
 	cli.LoadConfig()
 
 	go http.ListenAndServe("localhost:6061", nil) // pprof Server for Debbuging Mutexes
diff --git a/packages/parameter/parameter.go b/packages/parameter/parameter.go
index ef82796f..7d390f1f 100644
--- a/packages/parameter/parameter.go
+++ b/packages/parameter/parameter.go
@@ -37,7 +37,6 @@ func init() {
 // It automatically reads in a single config file starting with "config" (can be changed via the --config CLI flag)
 // and ending with: .json, .toml, .yaml or .yml (in this sequence).
 func FetchConfig(printConfig bool, ignoreSettingsAtPrint ...[]string) error {
-	flag.Parse()
 	err := parameter.LoadConfigFile(NodeConfig, *configDirPath, *configName, true, false)
 	if err != nil {
 		return err
diff --git a/plugins/cli/plugin.go b/plugins/cli/plugin.go
index 8fbaeab0..3075d043 100644
--- a/plugins/cli/plugin.go
+++ b/plugins/cli/plugin.go
@@ -2,6 +2,7 @@ package cli
 
 import (
 	"fmt"
+	"os"
 
 	"github.com/iotaledger/goshimmer/packages/parameter"
 	"github.com/iotaledger/hive.go/events"
@@ -43,10 +44,20 @@ func parseParameters() {
 	}
 }
 
+func PrintVersion() {
+	version := flag.BoolP("version", "v", false, "Prints the GoShimmer version")
+	flag.Parse()
+	if *version {
+		fmt.Println(AppName + " " + AppVersion)
+		os.Exit(0)
+	}
+}
+
 func LoadConfig() {
 	if err := parameter.FetchConfig(false); err != nil {
 		panic(err)
 	}
+
 	parseParameters()
 
 	if err := logger.InitGlobalLogger(parameter.NodeConfig); err != nil {
-- 
GitLab