forked from defensestation/osquery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.go
58 lines (49 loc) · 1006 Bytes
/
script.go
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
package osquery
type ScriptParams map[string]interface{}
type ScriptField struct {
name string
Src string
Param ScriptParams
Id string
Language string
}
func Script(name string) *ScriptField {
return &ScriptField{name: name}
}
func (f *ScriptField) Source(source string) *ScriptField {
f.Src = source
return f
}
func (f *ScriptField) Params(params ScriptParams) *ScriptField {
f.Param = params
return f
}
func (f *ScriptField) ID(id string) *ScriptField {
f.Id = id
return f
}
func (f *ScriptField) Lang(lang string) *ScriptField {
f.Language = lang
return f
}
func (f *ScriptField) Name() string {
return f.name
}
func (f *ScriptField) Map() map[string]interface{} {
result := make(map[string]interface{})
if f.Src != "" {
result["source"] = f.Src
}
if f.Param != nil {
result["params"] = f.Param
}
if f.Id != "" {
result["id"] = f.Id
}
if f.Language != "" {
result["lang"] = f.Language
}
return map[string]interface{}{
"script": result,
}
}