11package main
22
33import (
4- "bytes"
5- "flag"
64 "fmt"
75 "os"
86 "strings"
97
8+ "github.com/RewstApp/agent-smith-go/internal/agent"
109 "github.com/RewstApp/agent-smith-go/internal/utils"
1110)
1211
13- type uninstallParams struct {
14- OrgId string
15- Uninstall bool
16- }
17-
18- func parseUninstallParams (args []string ) (* uninstallParams , error ) {
19- var params uninstallParams
20-
21- fs := flag .NewFlagSet ("uninstall" , flag .ContinueOnError )
22- fs .StringVar (& params .OrgId , "org-id" , "" , "Organization ID" )
23- fs .BoolVar (& params .Uninstall , "uninstall" , false , "Uninstall the agent" )
24- fs .SetOutput (bytes .NewBuffer ([]byte {}))
25-
26- err := fs .Parse (args )
27- if err != nil {
28- return nil , err
29- }
30-
31- if params .OrgId == "" {
32- return nil , fmt .Errorf ("missing org-id" )
33- }
34-
35- if ! params .Uninstall {
36- return nil , fmt .Errorf ("missing uninstall" )
37- }
38-
39- return & params , nil
40- }
41-
42- type configParams struct {
43- OrgId string
44- ConfigUrl string
45- ConfigSecret string
46- LoggingLevel string
47- UseSyslog bool
48- DisableAgentPostback bool
49- NoAutoUpdates bool
50- }
51-
5212var allowedLoggingLevels = map [string ]bool {
5313 string (utils .Info ): true ,
5414 string (utils .Warn ): true ,
@@ -58,43 +18,6 @@ var allowedLoggingLevels = map[string]bool{
5818 string (utils .Default ): true ,
5919}
6020
61- func parseConfigParams (args []string ) (* configParams , error ) {
62- var params configParams
63-
64- fs := flag .NewFlagSet ("config" , flag .ContinueOnError )
65- fs .StringVar (& params .OrgId , "org-id" , "" , "Organization ID" )
66- fs .StringVar (& params .ConfigUrl , "config-url" , "" , "Configuration URL" )
67- fs .StringVar (& params .ConfigSecret , "config-secret" , "" , "Configuration Secret" )
68- fs .StringVar (& params .LoggingLevel , "logging-level" , string (utils .Default ), fmt .Sprintf ("Logging level: %s" , getAllowedConfigLevelsString (", " )))
69- fs .BoolVar (& params .UseSyslog , "syslog" , false , "Write log messages to system log" )
70- fs .BoolVar (& params .DisableAgentPostback , "disable-agent-postback" , false , "Disable agent postback" )
71- fs .BoolVar (& params .NoAutoUpdates , "no-auto-updates" , false , "No auto updates" )
72- fs .SetOutput (bytes .NewBuffer ([]byte {}))
73-
74- err := fs .Parse (args )
75- if err != nil {
76- return nil , err
77- }
78-
79- if params .OrgId == "" {
80- return nil , fmt .Errorf ("missing org-id" )
81- }
82-
83- if params .ConfigUrl == "" {
84- return nil , fmt .Errorf ("missing config-url" )
85- }
86-
87- if params .ConfigSecret == "" {
88- return nil , fmt .Errorf ("missing config-secret" )
89- }
90-
91- if ! allowedLoggingLevels [params .LoggingLevel ] {
92- return nil , fmt .Errorf ("invalid logging-level" )
93- }
94-
95- return & params , nil
96- }
97-
9821func getAllowedConfigLevelsString (separator string ) string {
9922 var levels []string
10023 for level := range allowedLoggingLevels {
@@ -109,108 +32,36 @@ func getAllowedConfigLevelsString(separator string) string {
10932 return strings .Join (levels , separator )
11033}
11134
112- type serviceParams struct {
113- OrgId string
114- ConfigFile string
115- LogFile string
116- }
117-
118- func parseServiceParams (args []string ) (* serviceParams , error ) {
119- var params serviceParams
120-
121- fs := flag .NewFlagSet ("config" , flag .ContinueOnError )
122- fs .StringVar (& params .OrgId , "org-id" , "" , "Organization ID" )
123- fs .StringVar (& params .ConfigFile , "config-file" , "" , "Configuration File" )
124- fs .StringVar (& params .LogFile , "log-file" , "" , "Log file" )
125- fs .SetOutput (bytes .NewBuffer ([]byte {}))
126-
127- err := fs .Parse (args )
128- if err != nil {
129- return nil , err
130- }
131-
132- if params .OrgId == "" {
133- return nil , fmt .Errorf ("missing org-id" )
134- }
135-
136- if params .ConfigFile == "" {
137- return nil , fmt .Errorf ("missing config-file" )
138- }
139-
140- if params .LogFile == "" {
141- return nil , fmt .Errorf ("missing log-file" )
142- }
143-
144- return & params , nil
145- }
146-
147- type updateParams struct {
148- OrgId string
149- Update bool
150- LoggingLevel string
151- UseSyslog bool
152- DisableAgentPostback bool
153- NoAutoUpdates bool
154- }
155-
156- func parseUpdateParams (args []string ) (* updateParams , error ) {
157- var params updateParams
158-
159- fs := flag .NewFlagSet ("config" , flag .ContinueOnError )
160- fs .StringVar (& params .OrgId , "org-id" , "" , "Organization ID" )
161- fs .BoolVar (& params .Update , "update" , false , "Update the agent" )
162- fs .StringVar (& params .LoggingLevel , "logging-level" , string (utils .Default ), fmt .Sprintf ("Logging level: %s" , getAllowedConfigLevelsString (", " )))
163- fs .BoolVar (& params .UseSyslog , "syslog" , false , "Write log messages to system log" )
164- fs .BoolVar (& params .DisableAgentPostback , "disable-agent-postback" , false , "Disable agent postback" )
165- fs .BoolVar (& params .NoAutoUpdates , "no-auto-updates" , false , "No auto updates" )
166- fs .SetOutput (bytes .NewBuffer ([]byte {}))
167-
168- err := fs .Parse (args )
169- if err != nil {
170- return nil , err
171- }
172-
173- if params .OrgId == "" {
174- return nil , fmt .Errorf ("missing org-id" )
175- }
176-
177- if ! params .Update {
178- return nil , fmt .Errorf ("missing update" )
179- }
180-
181- if ! allowedLoggingLevels [params .LoggingLevel ] {
182- return nil , fmt .Errorf ("invalid logging-level" )
183- }
184-
185- return & params , nil
186- }
187-
18835func main () {
189- uninstallParams , err := parseUninstallParams (os .Args [1 :])
36+ // Create providers
37+ sys := agent .NewSystemInfoProvider ()
38+ domain := agent .NewDomainInfoProvider ()
39+
40+ uninstallContext , err := newUninstallContext (os .Args [1 :])
19041 if err == nil {
19142 // Run uninstall routine
192- runUninstall (uninstallParams )
43+ runUninstall (uninstallContext )
19344 return
19445 }
19546
196- configParams , err := parseConfigParams (os .Args [1 :])
47+ configContext , err := newConfigContext (os .Args [1 :], sys , domain )
19748 if err == nil {
19849 // Run config routine
199- runConfig (configParams )
50+ runConfig (configContext )
20051 return
20152 }
20253
203- serviceParams , err := parseServiceParams (os .Args [1 :])
54+ serviceContext , err := newServiceContext (os .Args [1 :], sys , domain )
20455 if err == nil {
20556 // Run service routine
206- runService (serviceParams )
57+ runService (serviceContext )
20758 return
20859 }
20960
210- updateParams , err := parseUpdateParams (os .Args [1 :])
61+ updateContext , err := newUpdateContext (os .Args [1 :], sys , domain )
21162 if err == nil {
21263 // Run update routine
213- runUpdate (updateParams )
64+ runUpdate (updateContext )
21465 return
21566 }
21667
0 commit comments