stub in a gui. doesn't work
This commit is contained in:
parent
7ea7393d6c
commit
f1c1ca950c
1
argv.go
1
argv.go
|
@ -17,6 +17,7 @@ var argv args
|
|||
type args struct {
|
||||
Pull *EmptyCmd `arg:"subcommand:pull" help:"'git pull' on the repos"`
|
||||
List *EmptyCmd `arg:"subcommand:list" help:"list the repos"`
|
||||
Gui *EmptyCmd `arg:"subcommand:gui" help:"show gui"`
|
||||
Merge *EmptyCmd `arg:"subcommand:merge" help:"merge in new patchsets"`
|
||||
Init *EmptyCmd `arg:"subcommand:init" help:"init the repo list"`
|
||||
Port int `arg:"--port" default:"2520" help:"port to run on"`
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
|
||||
// Use of this source code is governed by the GPL 3.0
|
||||
|
||||
package main
|
||||
|
||||
// An app to submit patches for the 30 GO GUI repos
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.wit.com/gui"
|
||||
"go.wit.com/lib/fhelp"
|
||||
"go.wit.com/lib/gadgets"
|
||||
"go.wit.com/lib/gui/shell"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
func debug() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
gui.Crash(r, "forge debug()")
|
||||
}
|
||||
}()
|
||||
time.Sleep(2 * time.Second)
|
||||
for {
|
||||
now := time.Now()
|
||||
|
||||
doList()
|
||||
|
||||
log.Printf("finished a scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
|
||||
time.Sleep(90 * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func doGui() {
|
||||
if me.forge.Config.GetDefaultGui() == "" {
|
||||
me.forge.Config.DefaultGui = "gocui"
|
||||
me.forge.ConfigSave()
|
||||
}
|
||||
me.myGui = gui.New()
|
||||
me.myGui.InitEmbed(resources)
|
||||
me.myGui.SetAppDefaultPlugin(me.forge.Config.DefaultGui) // sets the default GUI plugin to use
|
||||
if pname, err := me.myGui.Default(); err != nil {
|
||||
if !fhelp.BuildPlugin("gocui") {
|
||||
log.Info("You can't run the forge GUI since the plugins did not build", pname)
|
||||
okExit("")
|
||||
} else {
|
||||
if err := me.myGui.LoadToolkitNew("gocui"); err != nil {
|
||||
log.Info("The plugins built, but still failed to load", pname)
|
||||
badExit(err)
|
||||
}
|
||||
log.Info("The plugins built and loaded!", pname)
|
||||
}
|
||||
}
|
||||
|
||||
mainWindow := gadgets.NewGenericWindow("forged: forge.wit.com", "Current Settings")
|
||||
mainWindow.Custom = func() {
|
||||
log.Warn("MAIN WINDOW CLOSE")
|
||||
now := time.Now()
|
||||
log.Printf("rill repos.Reload() took (%s)\n", shell.FormatDuration(time.Since(now)))
|
||||
okExit("")
|
||||
}
|
||||
drawWindow(mainWindow)
|
||||
|
||||
// sits here forever
|
||||
debug()
|
||||
}
|
||||
|
||||
func drawWindow(win *gadgets.GenericWindow) {
|
||||
grid := win.Group.RawGrid()
|
||||
|
||||
grid.NewButton("stats", func() {
|
||||
doList()
|
||||
})
|
||||
}
|
71
main.go
71
main.go
|
@ -77,6 +77,9 @@ func main() {
|
|||
}
|
||||
|
||||
if argv.Daemon == true {
|
||||
if argv.Gui != nil {
|
||||
go doGui()
|
||||
}
|
||||
mux := http.NewServeMux()
|
||||
okHandlerFunc := http.HandlerFunc(okHandler)
|
||||
|
||||
|
@ -104,74 +107,6 @@ func main() {
|
|||
okExit("")
|
||||
}
|
||||
|
||||
/*
|
||||
// --- Best Practice: Create a custom http.Server ---
|
||||
server := &http.Server{
|
||||
Addr: p,
|
||||
Handler: mux,
|
||||
|
||||
// ReadTimeout is the total time to read the entire request, including the body.
|
||||
// Increase this to a value that can accommodate your largest expected uploads.
|
||||
// For example, 5 minutes.
|
||||
ReadTimeout: 5 * time.Minute,
|
||||
|
||||
// WriteTimeout is the maximum duration before timing out writes of the response.
|
||||
WriteTimeout: 10 * time.Second,
|
||||
|
||||
// IdleTimeout is the maximum amount of time to wait for the
|
||||
// next request when keep-alives are enabled.
|
||||
IdleTimeout: 120 * time.Second,
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
log.Println(argv.Version(), "HOSTNAME set to:", HOSTNAME)
|
||||
log.Println("Running on port", "http://localhost"+p)
|
||||
log.Println("Running on port", "http://localhost"+p+"/ipv6.png")
|
||||
// if err := http.ListenAndServe(p, nil); err != nil {
|
||||
if err := server.ListenAndServe(); err != nil {
|
||||
log.Fatalf("Could not start server: %s\n", err)
|
||||
}
|
||||
/*
|
||||
log.Info("Running in --daemon mode")
|
||||
http.HandleFunc("/", okHandler)
|
||||
// go https() // use caddy instead
|
||||
p := fmt.Sprintf(":%d", argv.Port)
|
||||
log.Println(argv.Version(), "HOSTNAME set to:", HOSTNAME)
|
||||
log.Println("Running on port", "http://localhost"+p)
|
||||
log.Println("Running on port", "http://localhost"+p+"/ipv6.png")
|
||||
err := http.ListenAndServe(p, nil)
|
||||
if err != nil {
|
||||
log.Println("Error starting server:", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
*/
|
||||
log.Info("--daemon was not set. Just list the patches.")
|
||||
// doList()
|
||||
}
|
||||
|
||||
func formatDuration(d time.Duration) string {
|
||||
seconds := int(d.Seconds()) % 60
|
||||
minutes := int(d.Minutes()) % 60
|
||||
hours := int(d.Hours()) % 24
|
||||
days := int(d.Hours()) / 24
|
||||
|
||||
result := ""
|
||||
if days > 0 {
|
||||
result += fmt.Sprintf("%dd ", days)
|
||||
return result
|
||||
}
|
||||
if hours > 0 {
|
||||
result += fmt.Sprintf("%dh ", hours)
|
||||
return result
|
||||
}
|
||||
if minutes > 0 {
|
||||
result += fmt.Sprintf("%dm ", minutes)
|
||||
return result
|
||||
}
|
||||
if seconds > 0 {
|
||||
result += fmt.Sprintf("%ds", seconds)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ package main
|
|||
|
||||
import (
|
||||
"go.wit.com/dev/alexflint/arg"
|
||||
"go.wit.com/gui"
|
||||
"go.wit.com/lib/protobuf/forgepb"
|
||||
)
|
||||
|
||||
|
@ -14,5 +15,5 @@ var me *mainType
|
|||
type mainType struct {
|
||||
pp *arg.Parser // for parsing the command line args. Yay to alexf lint!
|
||||
forge *forgepb.Forge // for holding the forge protobuf files
|
||||
// myGui *gui.Node // the gui toolkit handle
|
||||
myGui *gui.Node // the gui toolkit handle
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue