From 1ff3ecb5b08b40686b0e03cf79c4233c5bf99396 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 5 Jun 2018 12:44:45 -0400 Subject: fixup statusline --- go/src/lib/statusline/tty.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 go/src/lib/statusline/tty.go (limited to 'go/src/lib/statusline/tty.go') diff --git a/go/src/lib/statusline/tty.go b/go/src/lib/statusline/tty.go new file mode 100644 index 0000000..72bbb57 --- /dev/null +++ b/go/src/lib/statusline/tty.go @@ -0,0 +1,28 @@ +package statusline + +import ( + "fmt" + "io" +) + +type statusLine struct { + out io.Writer + prevLen int +} + +func TTY(out io.Writer) StatusLine { + return &statusLine{out: out} +} + +func (sl *statusLine) Put(line string) { + fmt.Fprintf(sl.out, "\r%-[1]*[2]s", sl.prevLen, line) + sl.prevLen = len(line) +} + +func (sl *statusLine) End(keep bool) { + if keep { + io.WriteString(sl.out, "\n") + } else { + fmt.Fprintf(sl.out, "\r%-[1]*[2]s\r", sl.prevLen, "") + } +} -- cgit v1.2.3-2-g168b