diff --git a/main.go b/main.go index b7c8c9a3742..093b5f8725b 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "flag" + "fmt" "log" "net/http" "os" @@ -36,9 +37,16 @@ func main() { //Handle flags flag.StringVar(&bot.configFile, "config", config.GetFilePath(""), "config file to load") + version := flag.Bool("version", false, "retrieves current GoCryptoTrader version") flag.Parse() + if *version { + fmt.Printf(BuildVersion(true)) + os.Exit(0) + } + bot.config = &config.Cfg + fmt.Println(BuildVersion(false)) log.Printf("Loading config file %s..\n", bot.configFile) err := bot.config.LoadConfig(bot.configFile) diff --git a/version.go b/version.go new file mode 100644 index 00000000000..b742ee09e2e --- /dev/null +++ b/version.go @@ -0,0 +1,40 @@ +package main + +import "fmt" + +// const vars related to the app version +const ( + MajorVersion = "0" + MinorVersion = "1" + + PrereleaseBlurb = "This version is pre-release and is not inteded to be used as a production ready trading framework or bot - use at your own risk." + IsRelease = false + Copyright = "Copyright (c) 2018 The GoCryptoTrader Developers." + GitHub = "GitHub: https://github.com/thrasher-/gocryptotrader" + Trello = "Trello: https://trello.com/b/ZAhMhpOy/gocryptotrader" + Slack = "Slack: https://gocryptotrader.herokuapp.com" + Issues = "Issues: https://github.com/thrasher-/gocryptotrader/issues" +) + +// BuildVersion returns the version string +func BuildVersion(short bool) string { + versionStr := fmt.Sprintf("GoCryptoTrader v%s.%s", + MajorVersion, MinorVersion) + if !IsRelease { + versionStr += " pre-release.\n" + if !short { + versionStr += PrereleaseBlurb + "\n" + } + } else { + versionStr += " release.\n" + } + if short { + return versionStr + } + versionStr += Copyright + "\n\n" + versionStr += GitHub + "\n" + versionStr += Trello + "\n" + versionStr += Slack + "\n" + versionStr += Issues + "\n" + return versionStr +}