//less shows dry output in a "less" emulator func less(dry *app.Dry, screen *ui.Screen, keyboardQueue chan termbox.Event, done chan struct{}) { screen.Clear() v := ui.NewLess() v.MarkupSupport() go app.Write(dry, v) if err := v.Focus(keyboardQueue); err != nil { ui.ShowErrorMessage(screen, keyboardQueue, err) } termbox.HideCursor() screen.Clear() screen.Sync() done <- struct{}{} }
//less shows dry output in a "less" emulator func less(dry *Dry, screen *ui.Screen, keyboardQueue chan termbox.Event, done chan struct{}) { screen.Clear() v := ui.NewLess() v.MarkupSupport() go Write(dry, v) //Focus blocks until v decides that it does not want focus any more if err := v.Focus(keyboardQueue); err != nil { ui.ShowErrorMessage(screen, keyboardQueue, err) } termbox.HideCursor() screen.Clear() screen.Sync() done <- struct{}{} }
func stream(screen *ui.Screen, stream io.ReadCloser, keyboardQueue chan termbox.Event, done chan<- struct{}) { screen.Clear() screen.Sync() v := ui.NewLess() go func() { io.Copy(v, stream) }() if err := v.Focus(keyboardQueue); err != nil { ui.ShowErrorMessage(screen, keyboardQueue, err) } stream.Close() termbox.HideCursor() screen.Clear() screen.Sync() done <- struct{}{} }