Denis V. Dedkov пре 9 година
родитељ
комит
dcec154ed6
1 измењених фајлова са 28 додато и 2 уклоњено
  1. 28 2
      noolite-cli.go

+ 28 - 2
noolite-cli.go

@@ -2,21 +2,47 @@ package main
 
 import (
 	"flag"
+	"fmt"
 	"github.com/dedkovd/noolite"
 )
 
 func main() {
+	channel := flag.Int("channel", -1, "Noolite adapter channel")
+	command := flag.String("command", "", "Command")
+	flag.Parse()
+
+	fmt.Println(*channel)
+	fmt.Println(*command)
+
+	if *channel == -1 {
+		panic ("Channel was not set")
+	}
+
+	if *command == "" {
+		panic("Command was not set")
+	}
+
 	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()
 
-	channel := *flag.Int("c", 0, "Noolite adapter channel")
+	cmd, ok := commands[*command]
+
+	if !ok {
+		panic("Command not found")
+	}
 
-	err = n.Switch(channel)
+	cmd(*channel)
 
 	if err != nil {
 		panic(err)