From f73401fb9a0993d12da9ef60f265cd0502bb3808 Mon Sep 17 00:00:00 2001 From: "Guillaume J. Charmes" Date: Fri, 5 Apr 2013 16:43:12 -0700 Subject: [PATCH] Add missing file --- rcli/utils.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 rcli/utils.go diff --git a/rcli/utils.go b/rcli/utils.go new file mode 100644 index 0000000000..dbd579ffcd --- /dev/null +++ b/rcli/utils.go @@ -0,0 +1,27 @@ +package rcli + +import ( + "github.com/dotcloud/docker/term" + "os" + "os/signal" +) + +//FIXME: move these function to utils.go (in rcli to avoid import loop) +func SetRawTerminal() (*term.State, error) { + oldState, err := term.MakeRaw(int(os.Stdin.Fd())) + if err != nil { + return nil, err + } + c := make(chan os.Signal, 1) + signal.Notify(c, os.Interrupt) + go func() { + _ = <-c + term.Restore(int(os.Stdin.Fd()), oldState) + os.Exit(0) + }() + return oldState, err +} + +func RestoreTerminal(state *term.State) { + term.Restore(int(os.Stdin.Fd()), state) +}