Documentation ¶
Overview ¶
Package uilive provides a writer that live updates the terminal. It provides a buffered io.Writer that is flushed at a timed interval.
Package uilive provides a writer that updates the UI
Example ¶
package main import ( "fmt" "time" "github.com/gosuri/uilive" ) func main() { writer := uilive.New() // start listening to updates and render writer.Start() for i := 0; i <= 100; i++ { fmt.Fprintf(writer, "Downloading.. (%d/%d) GB\n", i, 100) time.Sleep(time.Millisecond * 5) } fmt.Fprintln(writer, "Finished: Downloaded 100GB") writer.Stop() // flush and stop rendering }
Output:
Index ¶
Examples ¶
Constants ¶
const ESC = 27
ESC is the ASCII code for escape character
Variables ¶
var ErrClosedPipe = errors.New("uilive: read/write on closed pipe")
ErrClosedPipe is the error returned when trying to writer is not listening
var Out = os.Stdout
Out is the default out for the writer
var RefreshInterval = time.Millisecond
RefreshInterval is the default refresh interval to update the ui
Functions ¶
This section is empty.
Types ¶
type Writer ¶
type Writer struct { // Out is the writer to write to Out io.Writer // RefreshInterval is the time the UI sould refresh RefreshInterval time.Duration // contains filtered or unexported fields }
Writer represent the writer that updates the UI
func (*Writer) Flush ¶
Flush writes to the out and resets the buffer. It should be called after the last call to Write to ensure that any data buffered in the Writer is written to output. Any incomplete escape sequence at the end is considered complete for formatting purposes.