##// END OF EJS Templates
Use the pager given by the environment to display long output...
Use the pager given by the environment to display long output Unix systems usually have a PAGER environment variable set. If it is set, mercurial will use the pager application to display output. Two configuration variables are available to influence the behaviour of the pager: pager.application sets the application to be used pager.quiet silences Broken Pipe errors that might occur when the user quits the pager before mercurial finished to write the output

File last commit:

r6323:6e1308a0 default
r6323:6e1308a0 default
Show More
pager.py
54 lines | 1.4 KiB | text/x-python | PythonLexer
# pager.py - display output using a pager
#
# Copyright 2008 David Soria Parra <dsp@php.net>
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
#
# To load the extension add it to your .hgrc file
#
# [extension]
# hgext.pager =
#
# To set the pager that should be used, set the application variable
#
# [pager]
# application = less
#
# You can also set environment variables there
#
# [pager]
# application = LESS='FSRX' less
#
# If no application is set, the pager extensions use the environment
# variable $PAGER. If neither pager.application, nor
# $PAGER is set, no pager is used.
#
# If you notice "BROKEN PIPE" error messages, you can disable them
# by setting
#
# [pager]
# quiet = True
#
import sys, os, signal
def getpager(ui):
'''return a pager
We separate this method from the pager class as we don't want to
instantiate a pager if it is not used at all
'''
if sys.stdout.isatty():
return (ui.config("pager", "application")
or os.environ.get("PAGER"))
def uisetup(ui):
# disable broken pipe error messages
if ui.configbool('pager', 'quiet', False):
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
if getpager(ui):
pager = os.popen(getpager(ui), 'wb')
sys.stderr = pager
sys.stdout = pager