Easy $PAGER
support for Go (i.e. less(1)
, more(1)
) with sane defaults.
By default pager
uses less(1)
with the args: -X -F -R --buffers=65535
and
sets LESSSECURE=1
before starting less(1)
.
If less(1)
is unavailable, pager
falls back to more(1)
.
The PAGER
environment variable is honored.
import (
"fmt"
"github.com/sean-/pager"
)
func main() {
p, err := pager.New()
if err != nil {
panic(fmt.Sprintf("unable to get pager: %v", err))
}
defer p.Wait()
foo(p)
}
func foo(w io.Writer) {
fmt.Fprintf(w, "header\n")
for i := 0; i < 1000; i++ {
fmt.Fprintf(w, "line %03d\n", i)
}
fmt.Fprintf(w, "trailer\n")
}
Much of this was pulled from https://gist.github.com/dchapes/1d0c538ce07902b76c75 and reworked slightly.