diff --git a/Makefile b/Makefile index b9501409..c620eac6 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,2 @@ install: - go install -ldflags="-X main.version=$(shell git describe --always --abbrev=6 --dirty=-dev)" + go install -ldflags="-X main.version=$(shell git describe --always --abbrev=6 --dirty=-dev) -X main.builtat=$(shell date +%FT%T%z)" diff --git a/status/widget.go b/status/widget.go index 6b5e754d..39369005 100644 --- a/status/widget.go +++ b/status/widget.go @@ -1,9 +1,7 @@ package status import ( - "fmt" - //"sort" - //"strings" + //"fmt" "time" "github.com/olebedev/config" @@ -17,14 +15,12 @@ type Widget struct { wtf.TextWidget Current int - Version string } -func NewWidget(version string) *Widget { +func NewWidget() *Widget { widget := Widget{ TextWidget: wtf.NewTextWidget(" 🎉 Status ", "status"), Current: 0, - Version: version, } return &widget @@ -37,28 +33,28 @@ 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.Version, - ) + //fmt.Fprintf( + //widget.View, + //fmt.Sprintf("%%%ds\n", w-1), + //widget.Version, + //) widget.RefreshedAt = time.Now() } /* -------------------- Unexported Functions -------------------- */ -func (widget *Widget) animation() string { - icons := []string{"👍", "🤜", "🤙", "🤜", "🤘", "🤜", "✊", "🤜", "👌", "🤜"} - next := icons[widget.Current] +//func (widget *Widget) animation() string { +//icons := []string{"👍", "🤜", "🤙", "🤜", "🤘", "🤜", "✊", "🤜", "👌", "🤜"} +//next := icons[widget.Current] - widget.Current = widget.Current + 1 - if widget.Current == len(icons) { - widget.Current = 0 - } +//widget.Current = widget.Current + 1 +//if widget.Current == len(icons) { +//widget.Current = 0 +//} - return next -} +//return next +//} diff --git a/system/widget.go b/system/widget.go new file mode 100644 index 00000000..34d72103 --- /dev/null +++ b/system/widget.go @@ -0,0 +1,57 @@ +package system + +import ( + "fmt" + "time" + + "github.com/olebedev/config" + "github.com/senorprogrammer/wtf/wtf" +) + +// Config is a pointer to the global config object +var Config *config.Config + +type Widget struct { + wtf.TextWidget + + BuiltAt string + Version string +} + +func NewWidget(builtAt, version string) *Widget { + widget := Widget{ + TextWidget: wtf.NewTextWidget(" System ", "system"), + BuiltAt: builtAt, + Version: version, + } + + return &widget +} + +func (widget *Widget) Refresh() { + if widget.Disabled() { + return + } + + widget.View.Clear() + + fmt.Fprintf( + widget.View, + "%6s: %s\n%6s: %s", + "Built", + widget.prettyBuiltAt(), + "Vers", + widget.Version, + ) + + widget.RefreshedAt = time.Now() +} + +func (widget *Widget) prettyBuiltAt() string { + str, err := time.Parse("2006-01-02T15:04:05-0700", widget.BuiltAt) + if err != nil { + return err.Error() + } else { + return str.Format("Jan _2, 15:04") + } +} diff --git a/wtf.go b/wtf.go index 994f2730..49d3331e 100644 --- a/wtf.go +++ b/wtf.go @@ -19,6 +19,7 @@ import ( "github.com/senorprogrammer/wtf/opsgenie" "github.com/senorprogrammer/wtf/security" "github.com/senorprogrammer/wtf/status" + "github.com/senorprogrammer/wtf/system" "github.com/senorprogrammer/wtf/textfile" "github.com/senorprogrammer/wtf/todo" "github.com/senorprogrammer/wtf/weather" @@ -135,7 +136,11 @@ var FocusTracker wtf.FocusTracker var Widgets []wtf.TextViewer var result = wtf.CreateConfigDir() -var version = "dev" + +var ( + builtat = "now" + version = "dev" +) func main() { flagConf := flag.String("config", "~/.wtf/config.yml", "Path to config file") @@ -170,6 +175,7 @@ func main() { opsgenie.Config = Config security.Config = Config status.Config = Config + system.Config = Config textfile.Config = Config todo.Config = Config weather.Config = Config @@ -184,7 +190,8 @@ func main() { newrelic.NewWidget(), opsgenie.NewWidget(), security.NewWidget(), - status.NewWidget(version), + status.NewWidget(), + system.NewWidget(builtat, version), textfile.NewWidget(), todo.NewWidget(), weather.NewWidget(),