zhangmeng
2019-12-23 addab1a0f957d2bb545fc00b438aec9f8a9591e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
}