#214 Better signal handling

This commit is contained in:
Guillaume J. Charmes
2013-03-27 23:54:53 -07:00
parent 7e9975d00a
commit 108acc0511
2 changed files with 11 additions and 1 deletions
+10
View File
@@ -8,6 +8,7 @@ import (
"io"
"log"
"os"
"os/signal"
)
func main() {
@@ -53,6 +54,15 @@ func runCommand(args []string) error {
return err
}
defer term.Restore(0, oldState)
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
go func() {
for _ = range c {
term.Restore(0, oldState)
log.Printf("\nSIGINT received\n")
os.Exit(0)
}
}()
}
// FIXME: we want to use unix sockets here, but net.UnixConn doesn't expose
// CloseWrite(), which we need to cleanly signal that stdin is closed without