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)
+ }
+ }
+}