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 {
|
type args struct {
|
||||||
Pull *EmptyCmd `arg:"subcommand:pull" help:"'git pull' on the repos"`
|
Pull *EmptyCmd `arg:"subcommand:pull" help:"'git pull' on the repos"`
|
||||||
List *EmptyCmd `arg:"subcommand:list" help:"list 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"`
|
Merge *EmptyCmd `arg:"subcommand:merge" help:"merge in new patchsets"`
|
||||||
Init *EmptyCmd `arg:"subcommand:init" help:"init the repo list"`
|
Init *EmptyCmd `arg:"subcommand:init" help:"init the repo list"`
|
||||||
Port int `arg:"--port" default:"2520" help:"port to run on"`
|
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.Daemon == true {
|
||||||
|
if argv.Gui != nil {
|
||||||
|
go doGui()
|
||||||
|
}
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
okHandlerFunc := http.HandlerFunc(okHandler)
|
okHandlerFunc := http.HandlerFunc(okHandler)
|
||||||
|
|
||||||
|
@ -104,74 +107,6 @@ func main() {
|
||||||
okExit("")
|
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.")
|
log.Info("--daemon was not set. Just list the patches.")
|
||||||
// doList()
|
// 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 (
|
import (
|
||||||
"go.wit.com/dev/alexflint/arg"
|
"go.wit.com/dev/alexflint/arg"
|
||||||
|
"go.wit.com/gui"
|
||||||
"go.wit.com/lib/protobuf/forgepb"
|
"go.wit.com/lib/protobuf/forgepb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,5 +15,5 @@ var me *mainType
|
||||||
type mainType struct {
|
type mainType struct {
|
||||||
pp *arg.Parser // for parsing the command line args. Yay to alexf lint!
|
pp *arg.Parser // for parsing the command line args. Yay to alexf lint!
|
||||||
forge *forgepb.Forge // for holding the forge protobuf files
|
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