autotypist/args.go

83 lines
2.0 KiB
Go

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"
)
var 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"`
}
func init() {
arg.MustParse(&argv)
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()
}()
}
}
// 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 argv.CheckoutDevel {
me.autotypistWindow.Hide()
me.repos.View.ArgCheckoutDevel()
doExit = true
} else {
log.Info("not switching to devel branches")
}
if argv.CheckoutUser {
me.autotypistWindow.Hide()
me.repos.View.ArgCheckoutUser()
doExit = true
} else {
log.Info("not switching to user branches")
}
if argv.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)
}
}