@@ -106,8 +106,8 @@ type Options struct {
106106 Timeout int `long:"timeout" default:"1" description:"Get/set action timeout (seconds)"`
107107 Retries int `long:"retries" default:"3" description:"Get/set action retries"`
108108
109- Parameter string `short:"p" long:"parameter" description:"Name of the parameter"`
110- Value string `short:"v" long:"value" description:"Value to set"`
109+ Parameter [] string `short:"p" long:"parameter" description:"List of parameter names "`
110+ Value string `short:"v" long:"value" description:"Value to set (single parameter only) "`
111111
112112 String bool `long:"string" description:"Value is string"`
113113 Uint8 bool `long:"uint8" description:"Value is uint8"`
@@ -120,6 +120,7 @@ type Options struct {
120120 Int64 bool `long:"int64" description:"Value is int64"`
121121
122122 Debug []bool `short:"D" long:"debug" description:"Debug mode, print raw packets"`
123+ Quiet []bool `short:"Q" long:"quiet" description:"Quiet mode, print only values"`
123124 ShowVersion func () `short:"V" long:"version" description:"Show application version"`
124125}
125126
@@ -172,29 +173,35 @@ func main() {
172173 logger .Error .Printf ("Unable to connect to %s:%d\n " , host , port )
173174 os .Exit (1 )
174175 }
175- logger .Info .Printf ("Connected to %s:%d\n " , host , port )
176+ if len (opts .Quiet ) == 0 {
177+ logger .Info .Printf ("Connected to %s:%d\n " , host , port )
178+ }
176179
177180 if len (opts .Parameter ) > 0 {
178- if len (opts .Value ) > 0 {
181+ if len (opts .Value ) == 0 || len (opts .Parameter ) > 1 {
182+ for _ , parameter := range opts .Parameter {
183+ if len (opts .Quiet ) == 0 {
184+ logger .Info .Printf ("Get %s\n " , parameter )
185+ }
186+ val , err := dpm .GetValue (parameter )
187+ if err == nil {
188+ logger .Info .Printf ("%s = %s\n " , val .Name , val )
189+ } else {
190+ logger .Info .Printf ("Failed: %s\n " , err )
191+ }
192+ }
193+ } else { // Set only if value and only a single parameter
179194 value , err := parseValue (opts )
180195 if err == nil {
181- logger .Info .Printf ("Set %s to 0x%X\n " , opts .Parameter , value )
182- if val , err := dpm .SetValue (opts .Parameter , value ); err == nil {
196+ logger .Info .Printf ("Set %s to 0x%X\n " , opts .Parameter [ 0 ] , value )
197+ if val , err := dpm .SetValue (opts .Parameter [ 0 ] , value ); err == nil {
183198 logger .Info .Printf ("%s = %s\n " , val .Name , val )
184199 } else {
185200 logger .Info .Printf ("Failed: %s\n " , err )
186201 }
187202 } else {
188203 logger .Error .Printf ("%s" , err )
189204 }
190- } else {
191- logger .Info .Printf ("Get %s\n " , opts .Parameter )
192- val , err := dpm .GetValue (opts .Parameter )
193- if err == nil {
194- logger .Info .Printf ("%s = %s\n " , val .Name , val )
195- } else {
196- logger .Info .Printf ("Failed: %s\n " , err )
197- }
198205 }
199206 } else {
200207 logger .Info .Printf ("Get parameter list:\n " )
0 commit comments