Added parsing arguments of command line

This commit is contained in:
Dmitry Lyukov
2016-03-26 16:32:57 +03:00
parent 4b990bcc82
commit e6fa93c856

View File

@@ -2,6 +2,7 @@
package main package main
import ( import (
"flag"
"fmt" "fmt"
"log" "log"
"os/exec" "os/exec"
@@ -67,25 +68,36 @@ func GetKeyNumsFromOutput(buf []byte) []uint8 {
func main() { func main() {
keyboardID := 14 keyboardId := flag.Int("id", -1, "Your keyboard id")
cmd := exec.Command("xinput", "test", strconv.Itoa(keyboardID)) outputPath := flag.String("o", "", "Path to export file")
flag.Parse()
log.Println("keyboardId =", *keyboardId, "outputPath =", *outputPath)
switch {
case *keyboardId == -1 && *outputPath == "":
flag.PrintDefaults()
return
case *keyboardId != -1:
cmd := exec.Command("xinput", "test", strconv.Itoa(*keyboardId))
stdout, err := cmd.StdoutPipe() stdout, err := cmd.StdoutPipe()
if err != nil {
log.Fatal(err)
}
if err := cmd.Start(); err != nil {
log.Fatal(err)
}
buf := make([]byte, KEYBOARD_BUFER_SIZE)
for {
n, err := stdout.Read(buf)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
// processing buf here if err := cmd.Start(); err != nil {
fmt.Println(n) log.Fatal(err)
time.Sleep(SLEEP_TIME) }
buf := make([]byte, KEYBOARD_BUFER_SIZE)
for {
n, err := stdout.Read(buf)
if err != nil {
log.Fatal(err)
}
// processing buf here
fmt.Println(n)
time.Sleep(SLEEP_TIME)
}
case *outputPath != "":
//exporting here
} }
} }