From 76fa613b7eaf1c8626d2a51901c623af7bf1a665 Mon Sep 17 00:00:00 2001 From: James Mills Date: Sat, 21 Mar 2020 08:31:24 +1000 Subject: Add command-line option parsing support and custom config file location --- main.go | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 4249353..b782c8b 100644 --- a/main.go +++ b/main.go @@ -2,15 +2,46 @@ package main import ( "fmt" - "log" "os" + log "github.com/sirupsen/logrus" + flag "github.com/spf13/pflag" "github.com/wybiral/tube/pkg/app" ) +var ( + debug bool + version bool + config string +) + +func init() { + flag.Usage = func() { + fmt.Fprintf(os.Stderr, "Usage: %s [options] [file]\n", os.Args[0]) + flag.PrintDefaults() + } + + flag.BoolVarP(&version, "version", "v", false, "display version information") + flag.BoolVarP(&debug, "debug", "d", false, "enable debug logging") + flag.StringVarP(&config, "config", "c", "config.json", "path to configuration file") +} + func main() { + flag.Parse() + + if debug { + log.SetLevel(log.DebugLevel) + } else { + log.SetLevel(log.InfoLevel) + } + + if version { + fmt.Printf("ed version %s", FullVersion()) + os.Exit(0) + } + cfg := app.DefaultConfig() - err := cfg.ReadFile("config.json") + err := cfg.ReadFile(config) if err != nil && !os.IsNotExist(err) { log.Fatal(err) } -- cgit v1.2.3