package app
|
|
import (
|
"analysis/logo"
|
"analysis/util"
|
"encoding/json"
|
"fmt"
|
"io/ioutil"
|
"plugin"
|
)
|
|
// SdkConfig sdk
|
type SdkConfig struct {
|
SoFile string `json:"so_file_path"`
|
Env string `json:"runtime"`
|
Param map[string]string `json:"param"`
|
}
|
|
// ReadConfig config json
|
func ReadConfig(file string) (SdkConfig, error) {
|
data, err := ioutil.ReadFile(file)
|
if err != nil {
|
return SdkConfig{}, fmt.Errorf("READ SDK CONFIG FILE %s ERROR", file)
|
}
|
|
//读取的数据为json格式,需要进行解码
|
var v SdkConfig
|
err = json.Unmarshal(data, &v)
|
|
return v, err
|
}
|
|
// EnvNoValue env no
|
const EnvNoValue = "env-no-value"
|
|
// ReadEnv env
|
func ReadEnv(file string) string {
|
c, err := ReadConfig(file)
|
if err != nil {
|
return EnvNoValue
|
}
|
return c.Env
|
}
|
|
// GetParams params
|
func GetParams(rKey, rValue string) []string {
|
var params []string
|
|
for k, v := range util.MapParames {
|
param := "-" + k + "=" + v
|
if k == rKey {
|
param = "-" + k + "=" + rValue
|
}
|
params = append(params, param)
|
}
|
|
return params
|
}
|
|
// LoadFunc load plugin
|
func LoadFunc(plug *plugin.Plugin, soFile, fnName string) (plugin.Symbol, error) {
|
fn, err := plug.Lookup(fnName)
|
if err != nil {
|
logo.Errorln("Lookup Func: ", fnName, " From: ", soFile, " Error: ", err)
|
}
|
return fn, err
|
}
|