From 631d18697e7199f91da6c1b297ebe1d9500defc9 Mon Sep 17 00:00:00 2001 From: swarman Date: Fri, 26 Aug 2016 11:49:58 +0200 Subject: [PATCH] Added version flag --- .promu.yml | 1 + Makefile | 1 + VERSION | 2 +- main.go | 22 ++++++++++++++++------ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.promu.yml b/.promu.yml index b71ca23..975d989 100644 --- a/.promu.yml +++ b/.promu.yml @@ -3,6 +3,7 @@ repository: build: flags: -a -tags 'netgo static_build' ldflags: + -X main.Version={{.Version}} tarball: files: crossbuild: diff --git a/Makefile b/Makefile index 3b8fe58..afc3f30 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ crossbuild: prerequisites $(PROMU) crossbuild $(PROMU) crossbuild tarballs +.PHONY: release release: #requires GITHUB_TOKEN environment variable with valid token and an #already created release on github diff --git a/VERSION b/VERSION index 8a9ecc2..7bcd0e3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1 \ No newline at end of file +0.0.2 \ No newline at end of file diff --git a/main.go b/main.go index 3e2fe6d..36a629b 100644 --- a/main.go +++ b/main.go @@ -16,8 +16,13 @@ import ( ) var ( - configPath = flag.String("config", "config.yml", "Path to config YAML file.") - verbose = flag.Bool("verbose", false, "Log more information") + Version = "unknown" +) + +var ( + configPathFlag = flag.String("config", "config.yml", "Path to config YAML file.") + verboseFlag = flag.Bool("verbose", false, "Log more information") + versionFlag = flag.Bool("version", false, "Show version and exit") ) type Config struct { @@ -30,15 +35,20 @@ func main() { flag.Parse() - configFile, err := os.Open(*configPath) + if *versionFlag { + fmt.Print(Version) + os.Exit(0) + } + + configFile, err := os.Open(*configPathFlag) if err != nil { - log.Fatalf("Failed to open config file at path %s due to error: %s", *configPath, err.Error()) + log.Fatalf("Failed to open config file at path %s due to error: %s", *configPathFlag, err.Error()) } defer configFile.Close() configData, err := ioutil.ReadAll(configFile) if err != nil { - log.Fatalf("Failed to read config file at path %s due to error: %s", *configPath, err.Error()) + log.Fatalf("Failed to read config file at path %s due to error: %s", *configPathFlag, err.Error()) } config := &Config{} @@ -116,7 +126,7 @@ func (f *Aggregator) Aggregate(targets []string, output io.Writer) { log.Printf("Result body close error: %s", err.Error()) } - if *verbose { + if *verboseFlag { log.Printf("OK: %s was refreshed in %.3f seconds", result.URL, result.SecondsTaken) } }