diff options
| -rw-r--r-- | init.go | 1 | ||||
| -rw-r--r-- | plugin.go | 70 |
2 files changed, 37 insertions, 34 deletions
@@ -384,6 +384,7 @@ func (n *Node) StandardExit() { log.Log(INFO, "StandardExit() attempt to exit each toolkit plugin") for i, plug := range allPlugins { log.Log(INFO, "NewButton()", i, plug) + n.CloseToolkit(plug.name) } log.Exit(0) } @@ -148,20 +148,47 @@ func searchPaths(name string) *aplug { var filename string var pfile []byte var err error + var p *aplug // try the filename from the command line first if argGui.GuiFile != "" { - p := initToolkit(name, argGui.GuiFile) + p = initToolkit(name, argGui.GuiFile) if p != nil { log.Log(NOW, "gui.Init() loaded ok!", argGui.GuiFile) return p } } - // This is the 'default' location - // if you are a linux distribution package maintainer, please put the tookits here - filename = "/usr/lib/go-gui-toolkits/" + name + ".so" - p := initToolkit(name, filename) + // check for custom toolkit builds. This looks: + // with 'go build': ~/go/src/go.wit.com/toolkits/gocui/gocui.go + // with 'make install': ~/go/lib/go-gui/gocui.go + // + // TODO: use forge to find the "go.work" dir + // TODO: fix 'go install' to support building plugins + homeDir, err := os.UserHomeDir() + if err != nil { + log.Error(err, "os.UserHomeDir() error", err) + } else { + // first look in the toolkit build directory + filename = homeDir + "/go/src/go.wit.com/toolkits/" + name + "/" + name + ".so" + p = initToolkit(name, filename) + if p != nil { + log.Log(NOW, "gui.Init() loaded", filename, "ok!") + return p + } + + // this is the "default" location when built and installed locally + filename = homeDir + "/go/lib/go-gui/" + name + ".so" + p = initToolkit(name, filename) + if p != nil { + log.Log(NOW, "gui.Init() loaded", filename, "ok!") + return p + } + } + + // try /usr/local/ + filename = "/usr/local/lib/go-gui/" + name + ".so" + p = initToolkit(name, filename) if p != nil { log.Log(NOW, "gui.Init() loaded", filename, "ok!") return p @@ -196,40 +223,15 @@ func searchPaths(name string) *aplug { return p } - // check for custom toolkit builds. This looks: - // with 'go build': ~/go/src/go.wit.com/toolkits/gocui/gocui.go - // with 'make install': ~/go/lib/go-gui/gocui.go - // - // TODO: use forge to find the "go.work" dir - // TODO: fix 'go install' to support building plugins - homeDir, err := os.UserHomeDir() - if err != nil { - log.Error(err, "os.UserHomeDir() error", err) - } else { - // first look in the toolkit build directory - filename = homeDir + "/go/src/go.wit.com/toolkits/" + name + "/" + name + ".so" - p = initToolkit(name, filename) - if p != nil { - log.Log(NOW, "gui.Init() loaded", filename, "ok!") - return p - } - - // this is the "default" location when built and installed locally - filename = homeDir + "/go/lib/go-gui/" + name + ".so" - p = initToolkit(name, filename) - if p != nil { - log.Log(NOW, "gui.Init() loaded", filename, "ok!") - return p - } - } - - // try /usr/local/ - filename = "/usr/local/lib/go-gui/" + name + ".so" + // This is the 'default' location + // if you are a linux distribution package maintainer, please put the tookits here + filename = "/usr/lib/go-gui-toolkits/" + name + ".so" p = initToolkit(name, filename) if p != nil { log.Log(NOW, "gui.Init() loaded", filename, "ok!") return p } + return nil } |
