autotypist/argv.go

87 lines
2.1 KiB
Go
Raw Normal View History

package main
/*
this parses the command line arguements
this enables command line options from other packages like 'gui' and 'log'
*/
import (
2024-02-23 07:01:05 -06:00
"os"
"go.wit.com/dev/alexflint/arg"
"go.wit.com/lib/debugger"
2024-02-16 20:37:23 -06:00
"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"`
}
func init() {
arg.MustParse(&myargv)
if debugger.ArgDebug() {
log.Info("cmd line --debugger == true")
go func() {
log.Sleep(2)
debugger.DebugWindow()
}()
}
2024-02-16 20:37:23 -06:00
if debugger.ArgLogger() {
log.Info("cmd line --loggger == true")
go func() {
log.Sleep(4)
logsettings.LogWindow()
logsettings.LogWindow()
}()
}
}
2024-02-23 07:01:05 -06:00
func (argv) Version() string {
return "autotypist " + VERSION
}
2024-02-23 07:01:05 -06:00
// 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 {
2024-02-23 07:01:05 -06:00
me.autotypistWindow.Hide()
me.repos.View.ArgCheckoutDevel()
doExit = true
} else {
log.Info("not switching to devel branches")
}
if myargv.CheckoutUser {
2024-02-23 07:01:05 -06:00
me.autotypistWindow.Hide()
me.repos.View.ArgCheckoutUser()
doExit = true
} else {
log.Info("not switching to user branches")
}
if myargv.GitPull {
2024-02-23 07:01:05 -06:00
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)
}
}