115 lines
2.3 KiB
Go
115 lines
2.3 KiB
Go
package main
|
|
|
|
import (
|
|
"embed"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"go.wit.com/dev/alexflint/arg"
|
|
"go.wit.com/lib/fhelp"
|
|
"go.wit.com/lib/gui/prep"
|
|
"go.wit.com/lib/protobuf/forgepb"
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
// sent from -ldflags
|
|
var VERSION string
|
|
var DATE string
|
|
|
|
//go:embed resources/*
|
|
var resources embed.FS
|
|
|
|
var ARGNAME string = "go-deb"
|
|
var argv args
|
|
|
|
func main() {
|
|
me = new(mainType)
|
|
prep.Bash(ARGNAME, argv.DoAutoComplete) // this line should be: prep.Bash(argv)
|
|
me.myGui = prep.Gui() // prepares the GUI package for go-args
|
|
me.pp = arg.MustParse(&argv)
|
|
|
|
if err := fhelp.ConfigureENV(); err != nil {
|
|
badExit(err)
|
|
}
|
|
me.goSrc = os.Getenv("FORGE_GOSRC")
|
|
if os.Getenv("FORGE_GOWORK") == "true" {
|
|
me.hasWork = true
|
|
}
|
|
log.Info("GO src path", me.goSrc, "go.work is", me.hasWork)
|
|
|
|
// set the go src path
|
|
os.Setenv("REPO_WORK_PATH", me.goSrc)
|
|
|
|
if argv.Forge != "" {
|
|
me.forge = forgepb.Init()
|
|
|
|
me.repo = me.forge.Repos.FindByFullPath(argv.Forge)
|
|
if me.repo == nil {
|
|
log.Info("repo not found", argv.Forge)
|
|
me.repo = me.forge.FindByGoPath(argv.Forge)
|
|
}
|
|
if me.repo == nil {
|
|
log.Info("forge failure. repo not found", argv.Forge)
|
|
os.Exit(-1)
|
|
}
|
|
log.Info("found repo", me.repo.GetGoPath())
|
|
}
|
|
// build()
|
|
if argv.Show != nil {
|
|
log.Info("todo: show", me.repo.GetGoPath())
|
|
okExit("")
|
|
}
|
|
|
|
me.basicWindow = makebasicWindow()
|
|
|
|
// figure out where we are working from
|
|
// os.Chdir to that directory
|
|
var debpath string
|
|
if me.repo == nil {
|
|
os.Setenv("GO_DEB_CUSTOM", "true")
|
|
debpath, _ = os.Getwd()
|
|
} else {
|
|
debpath = me.repo.GetFullPath()
|
|
}
|
|
_, basename := filepath.Split(debpath)
|
|
me.goPath = basename
|
|
os.Chdir(debpath)
|
|
|
|
// scan the repo
|
|
me.cBox.addRepo()
|
|
|
|
// look for a 'config' file in the repo
|
|
if me.cBox.readControlFile() == nil {
|
|
log.Warn("scan worked")
|
|
} else {
|
|
log.Warn("scan failed")
|
|
}
|
|
me.cBox.computeControlValues()
|
|
|
|
if argv.Gui != nil {
|
|
// only load teh toolkit if you get this far
|
|
me.myGui.Start() // loads the GUI toolkit
|
|
doGui()
|
|
me.basicWindow.Show()
|
|
debug()
|
|
}
|
|
|
|
log.Info("go-deb: attempting to build package")
|
|
if ok, err := buildPackage(me.cBox); ok {
|
|
log.Info("build worked")
|
|
} else {
|
|
log.Warn("build failed:", err)
|
|
os.Exit(-1)
|
|
}
|
|
os.Exit(0)
|
|
}
|
|
|
|
func debug() {
|
|
time.Sleep(2 * time.Second)
|
|
for {
|
|
log.Info("idle loop() todo: could check for things here")
|
|
time.Sleep(90 * time.Second)
|
|
}
|
|
}
|