1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

Make flags package responsible for its own display

This commit is contained in:
Chris Cummer 2018-06-16 12:46:16 -07:00
parent 4496cc7c31
commit 582eba4c7f
2 changed files with 17 additions and 13 deletions

View File

@ -6,6 +6,7 @@ import (
"path/filepath"
goFlags "github.com/jessevdk/go-flags"
"github.com/senorprogrammer/wtf/help"
"github.com/senorprogrammer/wtf/wtf"
)
@ -26,6 +27,18 @@ func (flags *Flags) ConfigFilePath() string {
return flags.Config
}
func (flags *Flags) Display(version string) {
if flags.HasModule() {
help.Display(flags.Module)
os.Exit(0)
}
if flags.HasVersion() {
fmt.Println(version)
os.Exit(0)
}
}
func (flags *Flags) HasConfig() bool {
return len(flags.Config) > 0
}
@ -38,7 +51,7 @@ func (flags *Flags) HasVersion() bool {
return flags.Version == true
}
func (flags *Flags) Parse(version string) {
func (flags *Flags) Parse() {
parser := goFlags.NewParser(flags, goFlags.Default)
if _, err := parser.Parse(); err != nil {
if flagsErr, ok := err.(*goFlags.Error); ok && flagsErr.Type == goFlags.ErrHelp {

15
wtf.go
View File

@ -25,7 +25,6 @@ import (
"github.com/senorprogrammer/wtf/github"
"github.com/senorprogrammer/wtf/gitlab"
"github.com/senorprogrammer/wtf/gspreadsheets"
"github.com/senorprogrammer/wtf/help"
"github.com/senorprogrammer/wtf/ipaddresses/ipapi"
"github.com/senorprogrammer/wtf/ipaddresses/ipinfo"
"github.com/senorprogrammer/wtf/jenkins"
@ -248,6 +247,7 @@ func addWidget(app *tview.Application, pages *tview.Pages, widgetName string) {
func makeWidgets(app *tview.Application, pages *tview.Pages) {
mods, _ := Config.Map("wtf.mods")
for mod := range mods {
if enabled := Config.UBool("wtf.mods."+mod+".enabled", false); enabled {
addWidget(app, pages, mod)
@ -262,17 +262,8 @@ func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
flags := flags.NewFlags()
flags.Parse(version)
if flags.HasModule() {
help.Display(flags.Module)
os.Exit(0)
}
if flags.HasVersion() {
fmt.Println(version)
os.Exit(0)
}
flags.Parse()
flags.Display(version)
cfg.CreateConfigDir()
cfg.CreateConfigFile()