From 5417f3e0bf137a95d30cec9cb632bcc245ce1e85 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 13 Oct 2016 00:50:10 +0200 Subject: cmd --- cmd/poll/main.go | 21 +++++++++++++++++++ cmd/runcmd/main.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ poll/main.go | 21 ------------------- runcmd/main.go | 61 ------------------------------------------------------ 4 files changed, 82 insertions(+), 82 deletions(-) create mode 100644 cmd/poll/main.go create mode 100644 cmd/runcmd/main.go delete mode 100644 poll/main.go delete mode 100644 runcmd/main.go diff --git a/cmd/poll/main.go b/cmd/poll/main.go new file mode 100644 index 0000000..bb19921 --- /dev/null +++ b/cmd/poll/main.go @@ -0,0 +1,21 @@ +package main + +import ( + "fmt" + "log" + + "dim13.org/redbutton" +) + +func main() { + dev, err := redbutton.Open() + if err != nil { + log.Fatal(err) + } + defer dev.Close() + + state := redbutton.Poll(dev) + for { + fmt.Println(<-state) + } +} diff --git a/cmd/runcmd/main.go b/cmd/runcmd/main.go new file mode 100644 index 0000000..e2e5b52 --- /dev/null +++ b/cmd/runcmd/main.go @@ -0,0 +1,61 @@ +package main + +import ( + "log" + "os" + "os/exec" + + "dim13.org/redbutton" +) + +type StateFn func(redbutton.Button) StateFn + +func Init(b redbutton.Button) StateFn { + if b == redbutton.Armed { + log.Println("Ready...") + return Armed + } + return Init +} + +func Armed(b redbutton.Button) StateFn { + if b == redbutton.Pressed { + log.Println("Go!") + go Exec(os.Args[1:]) + return Reset + } + return Init +} + +func Reset(b redbutton.Button) StateFn { + if b == redbutton.Closed { + return Init + } + return Reset +} + +func Exec(args []string) { + cmd := exec.Command(args[0], args[1:]...) + out, err := cmd.CombinedOutput() + if err != nil { + log.Fatal(err) + } + log.Println(string(out)) +} + +func main() { + if len(os.Args) < 2 { + log.Fatal("Usage: ", os.Args[0], " ") + } + + dev, err := redbutton.Open() + if err != nil { + log.Fatal(err) + } + defer dev.Close() + + state := redbutton.Poll(dev) + for stateFn := Init; stateFn != nil; { + stateFn = stateFn(<-state) + } +} diff --git a/poll/main.go b/poll/main.go deleted file mode 100644 index bb19921..0000000 --- a/poll/main.go +++ /dev/null @@ -1,21 +0,0 @@ -package main - -import ( - "fmt" - "log" - - "dim13.org/redbutton" -) - -func main() { - dev, err := redbutton.Open() - if err != nil { - log.Fatal(err) - } - defer dev.Close() - - state := redbutton.Poll(dev) - for { - fmt.Println(<-state) - } -} diff --git a/runcmd/main.go b/runcmd/main.go deleted file mode 100644 index e2e5b52..0000000 --- a/runcmd/main.go +++ /dev/null @@ -1,61 +0,0 @@ -package main - -import ( - "log" - "os" - "os/exec" - - "dim13.org/redbutton" -) - -type StateFn func(redbutton.Button) StateFn - -func Init(b redbutton.Button) StateFn { - if b == redbutton.Armed { - log.Println("Ready...") - return Armed - } - return Init -} - -func Armed(b redbutton.Button) StateFn { - if b == redbutton.Pressed { - log.Println("Go!") - go Exec(os.Args[1:]) - return Reset - } - return Init -} - -func Reset(b redbutton.Button) StateFn { - if b == redbutton.Closed { - return Init - } - return Reset -} - -func Exec(args []string) { - cmd := exec.Command(args[0], args[1:]...) - out, err := cmd.CombinedOutput() - if err != nil { - log.Fatal(err) - } - log.Println(string(out)) -} - -func main() { - if len(os.Args) < 2 { - log.Fatal("Usage: ", os.Args[0], " ") - } - - dev, err := redbutton.Open() - if err != nil { - log.Fatal(err) - } - defer dev.Close() - - state := redbutton.Poll(dev) - for stateFn := Init; stateFn != nil; { - stateFn = stateFn(<-state) - } -} -- cgit v1.2.3