summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile10
-rw-r--r--debugger.go42
-rw-r--r--gui.go59
4 files changed, 114 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1298486
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.swp
+go.*
+*.pb.go
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..4255c53
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+# git remote add github [email protected]:wit-go/gui-debugger.git
+
+all: goimports vet
+ @echo common init code for common packages
+
+goimports:
+ goimports -w *.go
+
+vet:
+ @GO111MODULE=off go vet
diff --git a/debugger.go b/debugger.go
new file mode 100644
index 0000000..723f4e8
--- /dev/null
+++ b/debugger.go
@@ -0,0 +1,42 @@
+package init
+
+// initializes logging and command line options
+
+import (
+ "go.wit.com/dev/alexflint/arg"
+ "go.wit.com/log"
+)
+
+var INFO *log.LogFlag
+var POLL *log.LogFlag
+var CHAN *log.LogFlag
+var WARN *log.LogFlag
+
+var argDebugger ArgsDebugger
+
+// This struct can be used with the go-arg package
+type ArgsDebugger struct {
+ Debugger bool `arg:"--debugger" help:"open the debugger window"`
+ Logger bool `arg:"--logger" help:"open the log.* control window"`
+}
+
+// returns true if --gui-debug was passed from the command line
+func ArgDebug() bool {
+ return argDebugger.Debugger
+}
+
+func ArgLogger() bool {
+ return argDebugger.Logger
+}
+
+func Debugger() {
+ arg.Register(&argDebugger)
+
+ full := "go.wit.com/bug/debugger"
+ short := "bugger"
+
+ INFO = log.NewFlag("INFO", false, full, short, "simple debugging Info()")
+ POLL = log.NewFlag("POLL", false, full, short, "watch the debugger poll things")
+ CHAN = log.NewFlag("CHAN", true, full, short, "chan() test code output")
+ WARN = log.NewFlag("WARN", true, full, short, "should warn the user")
+}
diff --git a/gui.go b/gui.go
new file mode 100644
index 0000000..ca93a02
--- /dev/null
+++ b/gui.go
@@ -0,0 +1,59 @@
+package init
+
+// initializes logging and command line options
+
+import (
+ "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"`
+}
+
+/*
+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":
+ return argGui.GuiPluginHack
+ default:
+ return ""
+ }
+}
+
+func Gui() *gui.Node {
+ arg.Register(&argDebugger)
+
+ return gui.PreInit(postMustParse)
+}