Compare commits
2 Commits
9fb611aa20
...
24e6a293b0
Author | SHA1 | Date | |
---|---|---|---|
24e6a293b0 | |||
28f464c4dc |
@ -15,6 +15,7 @@ const (
|
|||||||
ParamStart = "start"
|
ParamStart = "start"
|
||||||
ParamEnd = "end"
|
ParamEnd = "end"
|
||||||
ParamValue = "value"
|
ParamValue = "value"
|
||||||
|
ParamName = "name"
|
||||||
ParamEllipsis = "..."
|
ParamEllipsis = "..."
|
||||||
ParamFilepath = "filepath"
|
ParamFilepath = "filepath"
|
||||||
ParamDirpath = "dirpath"
|
ParamDirpath = "dirpath"
|
||||||
|
15
plugins.go
15
plugins.go
@ -6,7 +6,9 @@ package expr
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"plugin"
|
"plugin"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
var pluginRegister map[string]*plugin.Plugin
|
var pluginRegister map[string]*plugin.Plugin
|
||||||
@ -25,6 +27,17 @@ func pluginExists(name string) (exists bool) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makePluginName(name string) (decorated string) {
|
||||||
|
var template string
|
||||||
|
if execName, err := os.Executable(); err != nil || !strings.HasSuffix(execName, ".debug") {
|
||||||
|
template = "expr-%s-plugin.so"
|
||||||
|
} else {
|
||||||
|
template = "expr-%s-plugin.so.debug"
|
||||||
|
}
|
||||||
|
decorated = fmt.Sprintf(template, name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func importPlugin( /*ctx ExprContext,*/ dirList []string, name string) (err error) {
|
func importPlugin( /*ctx ExprContext,*/ dirList []string, name string) (err error) {
|
||||||
var filePath string
|
var filePath string
|
||||||
var p *plugin.Plugin
|
var p *plugin.Plugin
|
||||||
@ -33,7 +46,7 @@ func importPlugin( /*ctx ExprContext,*/ dirList []string, name string) (err erro
|
|||||||
var importFunc func(ExprContext)
|
var importFunc func(ExprContext)
|
||||||
var ok bool
|
var ok bool
|
||||||
|
|
||||||
decoratedName := fmt.Sprintf("expr-%s-plugin.so", name)
|
decoratedName := makePluginName(name)
|
||||||
|
|
||||||
if filePath, err = makeFilepath(decoratedName, dirList); err != nil {
|
if filePath, err = makeFilepath(decoratedName, dirList); err != nil {
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user