h2i: Hello, World.
diff --git a/h2i/h2i.go b/h2i/h2i.go new file mode 100644 index 0000000..79a57a4 --- /dev/null +++ b/h2i/h2i.go
@@ -0,0 +1,45 @@ +package main + +import ( + "io" + "log" + "os" + "time" + + "code.google.com/p/go.crypto/ssh/terminal" +) + +func main() { + oldState, err := terminal.MakeRaw(0) + if err != nil { + panic(err) + } + defer terminal.Restore(0, oldState) + + var screen = struct { + io.Reader + io.Writer + }{os.Stdin, os.Stdout} + + term := terminal.NewTerminal(screen, "> ") + + go func() { + for t := range time.Tick(1 * time.Second) { + term.Write([]byte(t.String() + "\n")) + } + }() + + for { + line, err := term.ReadLine() + if err != nil { + log.Fatal("ReadLine:", err) + } + if line == "quit" { + return + } + _, err = term.Write([]byte("boom - " + line + "\n")) + if err != nil { + log.Fatal("Write:", err) + } + } +}