// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "os" "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 *mainType // this app's variables 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 homedir string // where the user homedir is } // 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) me.homedir, _ = os.UserHomeDir() dumpDebug() }