فهرست منبع

Set command was realised

Denis V. Dedkov 9 سال پیش
والد
کامیت
9e1fecd513
1فایلهای تغییر یافته به همراه27 افزوده شده و 17 حذف شده
  1. 27 17
      noolite-cli.go

+ 27 - 17
noolite-cli.go

@@ -2,20 +2,20 @@ package main
 
 import (
 	"flag"
-	"fmt"
 	"github.com/dedkovd/noolite"
 )
 
 func main() {
 	channel := flag.Int("channel", -1, "Noolite adapter channel")
 	command := flag.String("command", "", "Command")
+	value := flag.Int("val", 0, "Set value")
+	red := flag.Int("r", 0, "Red channel")
+	green := flag.Int("g", 0, "Green channel")
+	blue := flag.Int("b", 0, "Blue channel")
 	flag.Parse()
 
-	fmt.Println(*channel)
-	fmt.Println(*command)
-
 	if *channel == -1 {
-		panic ("Channel was not set")
+		panic("Channel was not set")
 	}
 
 	if *command == "" {
@@ -24,26 +24,36 @@ func main() {
 
 	n, err := noolite.DefaultNooliteAdapter()
 
-	commands := map[string]func(int) error{
-		"on": n.On,
-		"off": n.Off,
-		"switch": n.Switch,
-	}
-
 	if err != nil {
 		panic(err)
 	}
 
 	defer n.Close()
 
-	cmd, ok := commands[*command]
-
-	if !ok {
-		panic("Command not found")
+	if *command == "set" {
+		if *value != 0 {
+			err = n.SetBrightnesValue(*channel, *value)
+		} else if *red != 0 || *green != 0 || *blue != 0 {
+			err = n.SetBrightnesValues(*channel, *red, *green, *blue)
+		} else {
+			panic("Need some value")
+		}
+	} else {
+		commands := map[string]func(int) error{
+			"on":     n.On,
+			"off":    n.Off,
+			"switch": n.Switch,
+		}
+
+		cmd, ok := commands[*command]
+
+		if !ok {
+			panic("Command not found")
+		}
+
+		err = cmd(*channel)
 	}
 
-	cmd(*channel)
-
 	if err != nil {
 		panic(err)
 	}