@@ -9,10 +9,12 @@ import (
99const (
1010 // CarverBlockSizeValue to configure size in bytes for carver blocks
1111 CarverBlockSizeValue string = "5120000"
12+ // FlagGenericValue to use as generator for generic flags
13+ FlagGenericValue string = `--{{ .FlagName }}={{ .FlagValue }}`
1214 // FlagTLSServerCerts for the --tls_server_certs flag
13- FlagTLSServerCerts string = `-- tls_server_certs={{ .CertFile }} `
15+ FlagNameTLSServerCerts string = `tls_server_certs`
1416 // FlagCarverBlockSize for the --carver_block_size flag
15- FlagCarverBlockSize string = `-- carver_block_size={{ .BlockSize }} `
17+ FlagNameCarverBlockSize string = `carver_block_size`
1618 // FlagsTemplate to generate flags for enrolling nodes
1719 FlagsTemplate string = `
1820--host_identifier=uuid
@@ -63,27 +65,32 @@ func GenServerCertsFlag(certificatePath string) string {
6365 if certificatePath == "" {
6466 return ""
6567 }
66- data := struct {
67- CertFile string
68- }{
69- CertFile : certificatePath ,
70- }
71- return GenGenericFlag ("servercerts" , FlagTLSServerCerts , data )
68+ return GenSingleFlag ("servercerts" , FlagNameTLSServerCerts , certificatePath )
7269}
7370
7471// GenCarveBlockSizeFlag to generate the --carver_block_size flag
7572func GenCarveBlockSizeFlag (blockSize string ) string {
73+ if blockSize == "" {
74+ return ""
75+ }
76+ return GenSingleFlag ("blocksize" , FlagNameCarverBlockSize , blockSize )
77+ }
78+
79+ // GenSingleFlag to generate a generic flag to be used by osquery
80+ func GenSingleFlag (tmplName , flagName , flagValue string ) string {
7681 data := struct {
77- BlockSize string
82+ FlagName string
83+ FlagValue string
7884 }{
79- BlockSize : blockSize ,
85+ FlagName : flagName ,
86+ FlagValue : flagValue ,
8087 }
81- return GenGenericFlag ( "blocksize" , FlagCarverBlockSize , data )
88+ return ParseFlagTemplate ( tmplName , FlagGenericValue , data )
8289}
8390
84- // GenGenericFlag to generate a generic flag to be used by osquery
85- func GenGenericFlag ( flagName , flagConst string , data interface {}) string {
86- t , err := template .New (flagName ).Parse (flagConst )
91+ // ParseFlagTemplate to parse a flag template
92+ func ParseFlagTemplate ( tmplName , flagTemplate string , data interface {}) string {
93+ t , err := template .New (tmplName ).Parse (flagTemplate )
8794 if err != nil {
8895 return ""
8996 }
@@ -114,7 +121,7 @@ func (environment *Environment) GenerateFlags(env TLSEnvironment, secretPath, ce
114121 FlagServerCerts : flagServerCerts ,
115122 FlagCarverBlock : GenCarveBlockSizeFlag (CarverBlockSizeValue ),
116123 }
117- return GenGenericFlag ("flags" , FlagsTemplate , data ), nil
124+ return ParseFlagTemplate ("flags" , FlagsTemplate , data ), nil
118125}
119126
120127// GenerateFlagsEnv to generate flags by environment name
0 commit comments