autotypist/main.go

134 lines
3.4 KiB
Go

// This is a simple example
package main
import (
"embed"
"os/user"
"go.wit.com/log"
"go.wit.com/gui/gui"
"go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/repostatus"
)
//go:embed resources/*
var resToolkit embed.FS
func main() {
myGui = gui.New()
myGui.InitEmbed(resToolkit)
myGui.LoadToolkit("nocui")
myGui.Default()
autotypistWindow()
// repoworld()
log.Sleep(.3)
// hidePerfect()
gui.Watchdog()
}
func addRepo(grid *gui.Node, path string, master string, devel string, user string) {
newRepo := new(repo)
if repostatus.VerifyLocalGoRepo(path) {
log.Warn("newRepo actually exists", newRepo.getPath())
} else {
log.Warn("newRepo does not exist", newRepo.getPath())
return
}
newRepo.path = path
newRepo.pLabel = grid.NewLabel(path).SetProgName("path")
newRepo.lastTag = grid.NewLabel("").SetProgName("lastTag")
newRepo.vLabel = grid.NewLabel("").SetProgName("current")
newRepo.masterName = grid.NewLabel("").SetProgName("masterName")
newRepo.masterVersion = grid.NewLabel("").SetProgName("masterVersion")
newRepo.develName = grid.NewLabel("").SetProgName("develName")
newRepo.develVersion = grid.NewLabel("").SetProgName("develVersion")
newRepo.userName = grid.NewLabel("").SetProgName("userName")
newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion")
newRepo.dirtyLabel = grid.NewLabel("")
newRepo.showButton = grid.NewButton("Show()", func() {
if newRepo.status == nil {
log.Warn("status window doesn't exist")
return
}
log.Warn("status window exists. trying TestDraw() here")
newRepo.status.Show()
newRepo.status.Update()
})
if path == "" {
newRepo.cButton.Hide()
newRepo.pButton.Hide()
}
newRepo.status = repostatus.New(myGui, newRepo.path)
newRepo.status.SetMasterName(master)
newRepo.status.SetDevelName(devel)
newRepo.status.SetUserName(user)
newRepo.hidden = false
newRepo.status.Update()
newRepo.newScan()
allrepos = append(allrepos, newRepo)
}
func autotypistWindow() {
/*
me.autotypistWindow = gadgets.NewBasicWindow(myGui, "autotypist for GO & git. it types faster than you can.")
me.autotypistWindow.Make()
me.autotypistWindow.StandardExit()
box := me.autotypistWindow.Box()
me.autotypistWindow.Draw()
*/
win := myGui.NewWindow("autotypist for GO & git. it types faster than you can.")
box := win.NewBox("bw hbox", true)
globalDisplayOptions(box)
globalBuildOptions(box)
globalResetOptions(box)
}
// This creates a window
func repoworld() {
reposwin = gadgets.NewBasicWindow(myGui, "All git repositories in ~/go/src/")
reposwin.Make()
reposbox = reposwin.Box().NewBox("bw vbox", false)
reposwin.Draw()
reposgroup = reposbox.NewGroup("go repositories (read from ~/.config/myrepolist)")
reposgrid = reposgroup.NewGrid("test", 11, 1)
reposgrid.NewLabel("")
reposgrid.NewLabel("last tag").SetProgName("last tag")
reposgrid.NewLabel("Current Version").SetProgName("Current Version")
reposgrid.NewLabel("master")
reposgrid.NewLabel("version")
reposgrid.NewLabel("devel")
reposgrid.NewLabel("version")
reposgrid.NewLabel("user")
reposgrid.NewLabel("version")
reposgrid.NewLabel("Status")
reposgrid.NewLabel("Show()")
repos := myrepolist()
for _, line := range repos {
log.Warn("repo =", line)
path, mbranch, dbranch, ubranch := splitLine(line)
if mbranch == "" {
mbranch = "master"
}
if dbranch == "" {
dbranch = "devel"
}
usr, _ := user.Current()
if ubranch == "" {
ubranch = usr.Username
}
addRepo(reposgrid, path, mbranch, dbranch, ubranch)
}
}