/
merge.go
60 lines (50 loc) · 1.48 KB
/
merge.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
59
60
package main
import (
"log"
"os"
"github.com/defenxor/dsiem/internal/pkg/cmd"
"github.com/defenxor/dsiem/internal/pkg/dpluger"
"github.com/spf13/cobra"
)
var mergeCmd = &cobra.Command{
Use: "merge-directive",
Short: "safely merge two directive files",
Long: `Safely merge two directive files, and upload it to dsiem`,
Run: func(c *cobra.Command, args []string) {
host, err := c.Flags().GetString("host")
if err != nil {
log.Fatal(err.Error())
}
source, err := c.Flags().GetString("directive")
if err != nil {
log.Fatal(err.Error())
}
target, err := c.Flags().GetString("file")
if err != nil {
log.Fatal(err.Error())
}
commander := cmd.NewCommand(os.Stdin, os.Stdout)
if err := dpluger.Merge(commander, dpluger.MergeConfig{
Host: host,
SourceJSON: source,
TargetJSON: target,
}); err != nil {
log.Fatal(err.Error())
}
},
}
func init() {
rootCmd.AddCommand(mergeCmd)
mergeCmd.Flags().String("host", "", "dsiem host address, required")
mergeCmd.Flags().String("directive", "", "existing directive name to be merged with the new directive file, required.")
mergeCmd.Flags().String("file", "", "path new directive file to be merged with the existing directive, required.")
if err := mergeCmd.MarkFlagRequired("host"); err != nil {
log.Fatal(err.Error())
}
if err := mergeCmd.MarkFlagRequired("directive"); err != nil {
log.Fatal(err.Error())
}
if err := mergeCmd.MarkFlagRequired("file"); err != nil {
log.Fatal(err.Error())
}
}