diff --git a/cmd/media_repo/main.go b/cmd/media_repo/main.go index 28d2d366d84a0ba4e53d5d438e33efbb8c3a92d1..83c942a4f6a9b0b5a23b6e0a8b8d661dba548524 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 0000000000000000000000000000000000000000..7cdfbd1a3ac3236d1a20ee9e5a38c3251fea30ba --- /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" + } +}