Documentation ¶
Overview ¶
Package pager implements paging using commands "less" or "more", depending on availability.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Main ¶
Main implements paging using commands "less" or "more" if they are available. If os.Stdout is not terminal or less/more are not available in $PATH, Main calls fn with out set to os.Stdout and returns its exit code. Otherwise creates a pager subprocess, directs its stdout to os.Stdout and calls fn with out set to pager stdin. fn's context is canceled if the user quits pager.
If fn returns non-zero exit code before pager exits, Main returns that exit code. Otherwise Main returns pager's exit code. It is a race between the user hitting q and fn failing.
Example:
func main() int { return Main(context.Background(), func(ctx context.Context, out io.WriteCloser) int { for i := 0; i < 100000 && ctx.Err() == nil; i++ { fmt.Fprintln(out, i) } return 0 }) }
Types ¶
This section is empty.