Sha256: 35f1a64e0bbc44c01b41655b95175756c93bea2f2efd0b1ba1cd2dbbea38af20
Contents?: true
Size: 921 Bytes
Versions: 65
Compression:
Stored size: 921 Bytes
Contents
module GitStyleBinary module Helpers module Pager # by Nathan Weizenbaum - http://nex-3.com/posts/73-git-style-automatic-paging-in-ruby def run_pager return if PLATFORM =~ /win32/ return unless STDOUT.tty? STDOUT.use_color = true read, write = IO.pipe unless Kernel.fork # Child process STDOUT.reopen(write) STDERR.reopen(write) if STDERR.tty? read.close write.close return end # Parent process, become pager STDIN.reopen(read) read.close write.close ENV['LESS'] = 'FSRX' # Don't page if the input is short enough Kernel.select [STDIN] # Wait until we have input before we start the pager pager = ENV['PAGER'] || 'less -erXF' exec pager rescue exec "/bin/sh", "-c", pager end module_function :run_pager end end end
Version data entries
65 entries across 65 versions & 5 rubygems