package main /* this parses the command line arguements this enables command line options from other packages like 'gui' and 'log' */ import ( "os" "go.wit.com/dev/alexflint/arg" "go.wit.com/lib/debugger" "go.wit.com/lib/gui/logsettings" "go.wit.com/log" ) type argv struct { DownloadAll bool `arg:"--download-all" help:"download everything from go.wit.com"` GitPull bool `arg:"--git-pull" help:"do git pull in every repository"` CheckoutUser bool `arg:"--switch-to-user-branch" help:"switch everything to your user branch"` CheckoutDevel bool `arg:"--switch-to-devel-branch" help:"switch everything to the devel branch"` OnlyMe bool `arg:"--only-me" help:"only scan repos from ~/.config/autotypist"` Port int `arg:"--port" default:"9419" help:"do fun stuff with curl"` NoConfig int `arg:"--no-config" help:"don't load ~/.config/autotypist"` } func init() { arg.MustParse(&myargv) if debugger.ArgDebug() { log.Info("cmd line --debugger == true") go func() { log.Sleep(2) debugger.DebugWindow() }() } if debugger.ArgLogger() { log.Info("cmd line --loggger == true") go func() { log.Sleep(4) logsettings.LogWindow() logsettings.LogWindow() }() } } func (argv) Version() string { return "autotypist " + VERSION } // This will process the command line arguements after everything is initialized // If any of them are called, don't show the GUI at all and just exit. func handleCmdLine() { var doExit bool = false if myargv.CheckoutDevel { me.autotypistWindow.Hide() me.repos.View.ArgCheckoutDevel() doExit = true } else { log.Info("not switching to devel branches") } if myargv.CheckoutUser { me.autotypistWindow.Hide() me.repos.View.ArgCheckoutUser() doExit = true } else { log.Info("not switching to user branches") } if myargv.GitPull { me.autotypistWindow.Hide() if me.repos.View.ArgGitPull() { log.Info("git pull everywhere worked") } else { log.Info("git failed somewhere") } doExit = true } else { log.Info("not running git pull everywhere") } if doExit { os.Exit(0) } }