package prep // initializes logging and command line options import ( "os" "go.wit.com/dev/alexflint/arg" "go.wit.com/gui" ) var argGui ArgsGui /* This struct can be used with the go-arg package. These are the generic default command line arguments for the 'GUI' package */ type ArgsGui struct { GuiPluginHack string `arg:"--gui-check-plugin" help:"hack to verify GO plugins load"` GuiVerbose bool `arg:"--gui-verbose" help:"enable all logging"` } /* used for command line options. This allows you to control the toolkit settings from the command line --debugger # opens the debugger --gui andlabs # loads the GTK toolkit on linux or Cocoa on mac --gui gocui # runs your program in the terminal in ncurses-like mode */ /* func ArgToolkit() string { return argGui.GuiPlugin } func init() { arg.Register(&argGui) } // this should never happen because this is before go-args MustParse() if argGui.GuiPluginHack != "" { // does os.Exec() and does not return gui.TestPluginAndExit() } */ // after go-args MustParse & user configuration // the gui package can pull out the final settings and init() the GO Plugin GUI Toolkit func postMustParse(s string) string { switch s { case "PluginHack": case "VERBOSE": if argGui.GuiVerbose == true { return "true" } return "false" case "FILE": return "someplugin" default: return "" } return "unknown" } func Gui() *gui.Node { if len(os.Args) > 1 && os.Args[1] == "--gui-check-plugin" { gui.TestPluginAndExitNew(os.Args[2]) os.Exit(0) } arg.Register(&argGui) gui.InitArg() return gui.PreInit(postMustParse) }