summaryrefslogtreecommitdiff
path: root/src/rhctl/audio_switch_command.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/rhctl/audio_switch_command.go')
-rw-r--r--src/rhctl/audio_switch_command.go41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/rhctl/audio_switch_command.go b/src/rhctl/audio_switch_command.go
index c90b1e4..e865a90 100644
--- a/src/rhctl/audio_switch_command.go
+++ b/src/rhctl/audio_switch_command.go
@@ -178,27 +178,34 @@ type SwitchCommand struct {
Response chan<- interface{}
}
+func SwitchCommandParseStatus(args []string) (cmdstr SwitchCmdString, cmdargs []interface{}, err error) {
+ if len(args) == 0 {
+ err = fmt.Errorf("missing argument <status-type>")
+ return
+ }
+ switch args[0] {
+ case "audio":
+ cmdstr = SwitchCmdStatusAudio
+ case "gpi":
+ cmdstr = SwitchCmdStatusGPI
+ case "oc":
+ cmdstr = SwitchCmdStatusOC
+ case "relay":
+ cmdstr = SwitchCmdStatusRelay
+ case "silence":
+ cmdstr = SwitchCmdStatusSilence
+ default:
+ err = fmt.Errorf("unknown status-type: '%s'", args[0])
+ return
+ }
+ return
+}
+
func NewSwitchCommandFromStrings(cmd string, args ...string) (c *SwitchCommand, err error) {
c = &SwitchCommand{}
switch cmd {
case "status":
- if len(args) == 0 {
- return nil, fmt.Errorf("missing argument <status-type>")
- }
- switch args[0] {
- case "audio":
- c.Cmd = SwitchCmdStatusAudio
- case "gpi":
- c.Cmd = SwitchCmdStatusGPI
- case "oc":
- c.Cmd = SwitchCmdStatusOC
- case "relay":
- c.Cmd = SwitchCmdStatusRelay
- case "silence":
- c.Cmd = SwitchCmdStatusSilence
- default:
- return nil, fmt.Errorf("unknown status-type: '%s'", args[0])
- }
+ c.Cmd, c.Args, err = SwitchCommandParseStatus(args)
default:
return nil, fmt.Errorf("unknown command '%s'", cmd)
}