summaryrefslogtreecommitdiff
path: root/structs.go
diff options
context:
space:
mode:
Diffstat (limited to 'structs.go')
-rw-r--r--structs.go38
1 files changed, 36 insertions, 2 deletions
diff --git a/structs.go b/structs.go
index b0b4a44..c11fb22 100644
--- a/structs.go
+++ b/structs.go
@@ -4,16 +4,50 @@
package main
import (
+ "sync"
+
"go.wit.com/lib/gui/prep"
"go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/lib/protobuf/gitpb"
"go.wit.com/lib/protobuf/zoopb"
)
-var me *autoType
+var me *mainType
// this app's variables
-type autoType struct {
+type mainType struct {
+ once sync.Once // one-time initialized data
auto *prep.Auto // more experiments for bash handling
forge *forgepb.Forge // your customized repo preferences and settings
machine *zoopb.Machine // your customized repo preferences and settings
}
+
+// move these to mainType
+var failed map[*gitpb.Repo]string
+var state map[*gitpb.Repo]string
+var debnames map[*gitpb.Repo]string
+
+func initForge() {
+ if me.forge == nil {
+ me.forge = forgepb.Init()
+ me.forge.Config.DumpENV()
+ }
+ initMachine()
+}
+
+func initMachine() {
+ if me.machine == nil {
+ me.machine, _ = zoopb.InitMachine()
+ }
+}
+
+func initMain() {
+ // autocomplete must be processed before there is anything sent to STDOUT or STDERR
+ me.auto = prep.Bash3(&argv) // add support for bash autocomplete with go-arg
+
+ failed = make(map[*gitpb.Repo]string)
+ state = make(map[*gitpb.Repo]string)
+ debnames = make(map[*gitpb.Repo]string)
+
+ dumpDebug()
+}