robo/cmd/rclient/main.go

53 lines
787 B
Go
Raw Normal View History

2015-02-04 21:08:44 -08:00
package main
import (
"bufio"
2015-02-04 21:24:45 -08:00
"encoding/gob"
2015-02-05 21:34:35 -08:00
"encoding/json"
2015-02-04 21:08:44 -08:00
"fmt"
2015-02-04 21:43:16 -08:00
"log"
2015-02-04 21:08:44 -08:00
"net"
"os"
"mcquay.me/robo"
)
const usage = "rsend <hostname>"
func main() {
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "%s\n", usage)
os.Exit(1)
}
2015-02-04 21:24:45 -08:00
var err error
2015-02-04 21:08:44 -08:00
conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", os.Args[1], robo.Port))
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
}
2015-02-04 21:24:45 -08:00
enc := gob.NewEncoder(conn)
2015-02-04 21:08:44 -08:00
s := bufio.NewScanner(os.Stdin)
2015-02-05 21:34:35 -08:00
e := robo.Event{}
2015-02-04 21:08:44 -08:00
for s.Scan() {
2015-02-05 21:34:35 -08:00
json.Unmarshal(s.Bytes(), &e)
2015-02-04 21:24:45 -08:00
2015-02-05 21:34:35 -08:00
log.Printf("sending: %+v\n", e)
err = enc.Encode(e)
2015-02-04 21:08:44 -08:00
if err != nil {
break
}
}
2015-02-04 21:24:45 -08:00
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
}
2015-02-04 21:08:44 -08:00
if err := s.Err(); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
}
}