// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "sync" "go.wit.com/dev/alexflint/arg" "go.wit.com/lib/ENV" "go.wit.com/lib/debian" "go.wit.com/lib/fhelp" "go.wit.com/lib/protobuf/argvpb" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/lib/protobuf/zoopb" ) var me *mainType // this app's variables type mainType struct { once sync.Once // one-time initialized data // "go.wit.com/dev/alexflint/arg" argv *argvpb.Argv // more experiments for bash handling pp *arg.Parser // for parsing the command line args. Yay to alexf lint! myGui *fhelp.GuiPrep // for initializing the GUI toolkits 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 } func initForge() { if me.forge == nil { var err error me.forge, err = forgepb.Init() if err != nil { me.argv.BadExit("this tool requires forge", err) } me.forge.RescanRepos() ENV.PrintTable() } initMachine() } func initMachine() { if me.machine == nil { me.machine = debian.InitMachine() } }