os.Exec() plugins to test if they will actually work
This commit is contained in:
parent
dda5629688
commit
80fa693ba4
3
Makefile
3
Makefile
|
@ -21,7 +21,8 @@ gocui: build
|
|||
./zookeeper --gui gocui
|
||||
|
||||
gocui-debugging: build
|
||||
./zookeeper --gui gocui --gui-file ~/go/src/go.wit.com/toolkits/gocui/gocui.so >/tmp/forge.log 2>&1
|
||||
./zookeeper --gui gocui --gui-file ~/go/src/go.wit.com/toolkits/gocui/gocui.so
|
||||
# ./zookeeper --gui gocui --gui-file ~/go/src/go.wit.com/toolkits/gocui/gocui.so >/tmp/forge.log 2>&1
|
||||
|
||||
build: goimports vet
|
||||
GO111MODULE=off go build -v -x \
|
||||
|
|
1
argv.go
1
argv.go
|
@ -18,6 +18,7 @@ type args struct {
|
|||
Verbose bool `arg:"--verbose" default:"false" help:"talk more"`
|
||||
Daemon bool `arg:"--daemon" default:"false" help:"run in daemon mode"`
|
||||
Port int `arg:"--port" default:"8080" help:"port to run on"`
|
||||
NoPort bool `arg:"--no-port" help:"don't open socket"`
|
||||
}
|
||||
|
||||
func (args) Version() string {
|
||||
|
|
2
http.go
2
http.go
|
@ -75,7 +75,7 @@ func startHTTP() {
|
|||
http.HandleFunc("/", okHandler)
|
||||
|
||||
p := fmt.Sprintf(":%d", argv.Port)
|
||||
log.Println("Running on port", p)
|
||||
log.Println("zookeeper main startHTTP() Running on port", p)
|
||||
|
||||
err := http.ListenAndServe(p, nil)
|
||||
if err != nil {
|
||||
|
|
22
main.go
22
main.go
|
@ -21,15 +21,27 @@ var BUILDTIME string
|
|||
var resources embed.FS
|
||||
|
||||
func main() {
|
||||
log.Warn("zookeeper PID:", os.Getpid(), os.Args)
|
||||
var pp *arg.Parser
|
||||
gui.InitArg()
|
||||
pp = arg.MustParse(&argv)
|
||||
gui.InitArg() // include the 'gui' package command line arguements
|
||||
pp = arg.MustParse(&argv) // parse the command line
|
||||
|
||||
if pp == nil {
|
||||
pp.WriteHelp(os.Stdout)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
// check if the binary is being called to test
|
||||
// if the plugin can actually loaded. This is a hack
|
||||
// around needing a Test() plugin load function in GO
|
||||
if gui.IsGoPluginTestHack() {
|
||||
argv.NoPort = true
|
||||
gui.CheckPlugin()
|
||||
os.Exit(0)
|
||||
// if argv.GuiCheck != "" {
|
||||
// }
|
||||
}
|
||||
|
||||
if argv.Daemon {
|
||||
// turn off timestamps for STDOUT (systemd adds them)
|
||||
log.DaemonMode(true)
|
||||
|
@ -45,9 +57,11 @@ func main() {
|
|||
}
|
||||
// me.upgrade = make(map[string]bool) // used to trigger upgrade attempts
|
||||
|
||||
// log.Sleep(3)
|
||||
|
||||
go NewWatchdog()
|
||||
|
||||
if !argv.NoPort {
|
||||
go startHTTP()
|
||||
|
||||
}
|
||||
doGui()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue