@@ -25,9 +25,9 @@ type Config struct {
2525}
2626
2727type Discovery struct {
28- Listen bool `json:"listen"`
29- Active bool `json:"active"`
30- Plugins [ ]PluginConfig `json:"plugins"`
28+ Listen bool `json:"listen"`
29+ Active bool `json:"active"`
30+ Plugins map [ string ]PluginConfig `json:"plugins"`
3131}
3232
3333type PluginConfig struct {
@@ -57,16 +57,42 @@ func (c *Config) PrettyPrint(prefix string, hideSensible bool) string {
5757 result .WriteString (task .IPv4 .PrettyPrint (prefix + " " ))
5858 }
5959
60- macAddresses := make ([]string , len (task .MACAddresses ))
61- for i , mac := range task .MACAddresses {
62- macAddresses [i ] = mac .String ()
63- }
64- result .WriteString (prefix + " MAC Addresses: " + strings .Join (macAddresses , ", " ) + "\n " )
65- subnets := make ([]string , len (task .Subnets ))
66- for i , subnet := range task .Subnets {
67- subnets [i ] = subnet .String ()
60+ for _ , filter := range task .Filters {
61+ result .WriteString (prefix + " - Filter Set:\n " )
62+ if filter .MAC .Address != "" || len (filter .MAC .Mask ) > 0 || len (filter .MAC .Type ) > 0 {
63+ result .WriteString (prefix + " MAC:\n " )
64+ if filter .MAC .Address != "" {
65+ result .WriteString (prefix + " Address: " + filter .MAC .Address + "\n " )
66+ }
67+ if len (filter .MAC .Mask ) > 0 {
68+ result .WriteString (prefix + " Mask: " + strings .Join (filter .MAC .Mask , ", " ) + "\n " )
69+ }
70+ if len (filter .MAC .Type ) > 0 {
71+ result .WriteString (prefix + " Type: " + strings .Join (filter .MAC .Type , ", " ) + "\n " )
72+ }
73+ }
74+
75+ if filter .IP .Prefix .IsValid () || filter .IP .Suffix != "" || len (filter .IP .Mask ) > 0 || len (filter .IP .Type ) > 0 {
76+ result .WriteString (prefix + " IP:\n " )
77+ if filter .IP .Prefix .IsValid () {
78+ result .WriteString (prefix + " Prefix: " + filter .IP .Prefix .String () + "\n " )
79+ }
80+ if filter .IP .Suffix != "" {
81+ result .WriteString (prefix + " Suffix: " + filter .IP .Suffix + "\n " )
82+ }
83+ if len (filter .IP .Mask ) > 0 {
84+ result .WriteString (prefix + " Mask: " + strings .Join (filter .IP .Mask , ", " ) + "\n " )
85+ }
86+ if len (filter .IP .Type ) > 0 {
87+ result .WriteString (prefix + " Type: " + strings .Join (filter .IP .Type , ", " ) + "\n " )
88+ }
89+ }
90+
91+ if len (filter .Source ) > 0 {
92+ result .WriteString (prefix + " Source: " + strings .Join (filter .Source , ", " ) + "\n " )
93+ }
6894 }
69- result . WriteString ( prefix + " Subnets: " + strings . Join ( subnets , ", " ) + " \n " )
95+
7096 result .WriteString (prefix + " Hostnames:\n " )
7197
7298 // Sort endpoint keys
@@ -126,12 +152,22 @@ func (c *Config) PrettyPrint(prefix string, hideSensible bool) string {
126152 result .WriteString (prefix + " Active: " + fmt .Sprintf ("%t" , c .Discovery .Active ) + "\n " )
127153 if len (c .Discovery .Plugins ) > 0 {
128154 result .WriteString (prefix + " Plugins:\n " )
129- for _ , plugin := range c .Discovery .Plugins {
130- result .WriteString (prefix + " Type: " + plugin .Type + "\n " )
155+
156+ // Sort plugin keys
157+ pluginKeys := make ([]string , 0 , len (c .Discovery .Plugins ))
158+ for k := range c .Discovery .Plugins {
159+ pluginKeys = append (pluginKeys , k )
160+ }
161+ sort .Strings (pluginKeys )
162+
163+ for _ , name := range pluginKeys {
164+ plugin := c .Discovery .Plugins [name ]
165+ result .WriteString (prefix + " " + name + ":\n " )
166+ result .WriteString (prefix + " Type: " + plugin .Type + "\n " )
131167 if ! hideSensible {
132- result .WriteString (prefix + " Params: " + plugin .Params + "\n " )
168+ result .WriteString (prefix + " Params: " + plugin .Params + "\n " )
133169 } else {
134- result .WriteString (prefix + " Params: <sensible data hidden>\n " )
170+ result .WriteString (prefix + " Params: <sensible data hidden>\n " )
135171 }
136172 }
137173 }
0 commit comments