From 30f842011d67cbbc175a720e58b5391b96dbfa1f Mon Sep 17 00:00:00 2001
From: Travis Ralston <travpc@gmail.com>
Date: Sat, 28 Dec 2019 20:22:36 -0700
Subject: [PATCH] Add some version information on startup

---
 cmd/media_repo/main.go    | 21 +++++++++++++++++++++
 common/version/version.go | 13 +++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 common/version/version.go

diff --git a/cmd/media_repo/main.go b/cmd/media_repo/main.go
index 28d2d366..83c942a4 100644
--- a/cmd/media_repo/main.go
+++ b/cmd/media_repo/main.go
@@ -2,6 +2,7 @@ package main
 
 import (
 	"flag"
+	"fmt"
 	"os"
 	"os/signal"
 
@@ -9,15 +10,34 @@ import (
 	"github.com/turt2live/matrix-media-repo/api/webserver"
 	"github.com/turt2live/matrix-media-repo/common/config"
 	"github.com/turt2live/matrix-media-repo/common/logging"
+	"github.com/turt2live/matrix-media-repo/common/version"
 	"github.com/turt2live/matrix-media-repo/metrics"
 )
 
+func printVersion(usingLogger bool) {
+	version.SetDefaults()
+
+	if usingLogger {
+		logrus.Info("Version: " + version.Version)
+		logrus.Info("Commit: " + version.GitCommit)
+	} else {
+		fmt.Println("Version: " + version.Version)
+		fmt.Println("Commit: " + version.GitCommit)
+	}
+}
+
 func main() {
 	configPath := flag.String("config", "media-repo.yaml", "The path to the configuration")
 	migrationsPath := flag.String("migrations", "./migrations", "The absolute path for the migrations folder")
 	templatesPath := flag.String("templates", "./templates", "The absolute path for the templates folder")
+	versionFlag := flag.Bool("version", true, "Prints the version and exits")
 	flag.Parse()
 
+	if *versionFlag {
+		printVersion(false)
+		return // exit 0
+	}
+
 	// Override config path with config for Docker users
 	configEnv := os.Getenv("REPO_CONFIG")
 	if configEnv != "" {
@@ -34,6 +54,7 @@ func main() {
 	}
 
 	logrus.Info("Starting up...")
+	printVersion(true)
 
 	config.PrintDomainInfo()
 	loadDatabase()
diff --git a/common/version/version.go b/common/version/version.go
new file mode 100644
index 00000000..7cdfbd1a
--- /dev/null
+++ b/common/version/version.go
@@ -0,0 +1,13 @@
+package version
+
+var GitCommit string
+var Version string
+
+func SetDefaults() {
+	if GitCommit == "" {
+		GitCommit = ".dev"
+	}
+	if Version == "" {
+		Version = "unknown"
+	}
+}
-- 
GitLab