From 5a31de74fed71e353cdfc9849911c8ff1571b087 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Mon, 23 Apr 2018 17:35:14 -0700 Subject: [PATCH] Add Makefile support for 'make install' and version info --- Makefile | 2 ++ status/widget.go | 20 +++++++++++--------- todo/list.go | 4 +--- wtf.go | 27 +++++++++++++++++++++++++-- 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index e69de29b..8b430a9c 100644 --- a/Makefile +++ b/Makefile @@ -0,0 +1,2 @@ +install: + go install -ldflags="-X main.version=$(shell git describe --always --long --dirty)" diff --git a/status/widget.go b/status/widget.go index a42b0480..6b5e754d 100644 --- a/status/widget.go +++ b/status/widget.go @@ -1,7 +1,7 @@ package status import ( - //"fmt" + "fmt" //"sort" //"strings" "time" @@ -17,12 +17,14 @@ type Widget struct { wtf.TextWidget Current int + Version string } -func NewWidget() *Widget { +func NewWidget(version string) *Widget { widget := Widget{ TextWidget: wtf.NewTextWidget(" 🎉 Status ", "status"), Current: 0, + Version: version, } return &widget @@ -35,14 +37,14 @@ func (widget *Widget) Refresh() { return } - //_, _, w, _ := widget.View.GetInnerRect() + _, _, w, _ := widget.View.GetInnerRect() - //widget.View.Clear() - //fmt.Fprintf( - //widget.View, - //fmt.Sprintf("\n%%%ds", w-1), - //widget.timezones(), - //) + widget.View.Clear() + fmt.Fprintf( + widget.View, + fmt.Sprintf("\n%%%ds", w-1), + widget.Version, + ) widget.RefreshedAt = time.Now() } diff --git a/todo/list.go b/todo/list.go index ff94aa33..d4576832 100644 --- a/todo/list.go +++ b/todo/list.go @@ -1,8 +1,6 @@ package todo -import ( - "fmt" -) +import () type List struct { Items []*Item diff --git a/wtf.go b/wtf.go index cc2bd6ac..cf3cf0b7 100644 --- a/wtf.go +++ b/wtf.go @@ -2,9 +2,9 @@ package main import ( "flag" + "fmt" "os" "time" - //"math/rand" "github.com/gdamore/tcell" "github.com/olebedev/config" @@ -99,19 +99,42 @@ func refreshAllModules() { } } +func versionInfo() { +fmt.Printf("Version: %s\n", version) + os.Exit(0) +} + var result = wtf.CreateConfigDir() var Config *config.Config var FocusTracker wtf.FocusTracker var Widgets []wtf.TextViewer +var version = "dev" + /* -------------------- Main -------------------- */ func main() { // Optional argument to accept path to a config file configFile := flag.String("config", "~/.wtf/config.yml", "Path to config file") + flagVersion := flag.Bool("version", false, "Show version info") flag.Parse() + if *flagVersion { + versionInfo() + } + + // If we're just displaying the version, exit early + args := flag.Args() + cmd := args[0] + + switch cmd { + case "help", "--help", "-h": + os.Exit(0) + case "version", "--version": + versionInfo() + } + Config = wtf.LoadConfigFile(*configFile) wtf.Config = Config @@ -140,7 +163,7 @@ func main() { newrelic.NewWidget(), opsgenie.NewWidget(), security.NewWidget(), - status.NewWidget(), + status.NewWidget(version), textfile.NewWidget(), todo.NewWidget(), weather.NewWidget(),