##// END OF EJS Templates
Merge from crew-stable.
Merge from crew-stable.

File last commit:

r6457:7ef281e7 merge default
r6457:7ef281e7 merge default
Show More
pager.py
60 lines | 1.8 KiB | text/x-python | PythonLexer
David Soria Parra
Use the pager given by the environment to display long output...
r6323 # 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.
#
Matt Mackall
pager: further simplify code, clean up comments
r6324 # To load the extension, add it to your .hgrc file:
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
# [extension]
# hgext.pager =
#
Matt Mackall
pager: further simplify code, clean up comments
r6324 # To set the pager that should be used, set the application variable:
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
# [pager]
Matt Mackall
pager: further simplify code, clean up comments
r6324 # pager = LESS='FSRX' less
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
Matt Mackall
pager: further simplify code, clean up comments
r6324 # If no pager is set, the pager extensions uses the environment
# variable $PAGER. If neither pager.pager, nor $PAGER is set, no pager
# is used.
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
# If you notice "BROKEN PIPE" error messages, you can disable them
Matt Mackall
pager: further simplify code, clean up comments
r6324 # by setting:
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
Matt Mackall
pager: further simplify code, clean up comments
r6324 # [pager]
# quiet = True
David Soria Parra <dsp <at> php.net>
pager: Add a configuration to enable/disable the pager for certain commands...
r6417 #
# You can disable the pager for certain commands by adding them to the
# pager.ignore list:
#
# [pager]
# ignore = version, help, update
#
# You can also enable the pager only for certain commands using pager.attend:
#
# [pager]
# attend = log
#
# If pager.attend is present, pager.ignore will be ignored.
#
# To ignore global commands like 'hg version' or 'hg help', you have to specify them
# in the global .hgrc
David Soria Parra
Use the pager given by the environment to display long output...
r6323
import sys, os, signal
David Soria Parra <dsp <at> php.net>
pager: Add a configuration to enable/disable the pager for certain commands...
r6417 from mercurial import dispatch
David Soria Parra
Use the pager given by the environment to display long output...
r6323
def uisetup(ui):
David Soria Parra <dsp <at> php.net>
pager: Add a configuration to enable/disable the pager for certain commands...
r6417 def pagecmd(ui, options, cmd, cmdfunc):
p = ui.config("pager", "pager", os.environ.get("PAGER"))
Dirkjan Ochtman
Merge from crew-stable.
r6457 if p and sys.stdout.isatty() and '--debugger' not in sys.argv:
David Soria Parra <dsp <at> php.net>
pager: Add a configuration to enable/disable the pager for certain commands...
r6417 attend = ui.configlist('pager', 'attend')
if (cmd in attend or
(cmd not in ui.configlist('pager', 'ignore') and not attend)):
sys.stderr = sys.stdout = os.popen(p, "wb")
if ui.configbool('pager', 'quiet'):
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
return oldrun(ui, options, cmd, cmdfunc)
oldrun = dispatch._runcommand
dispatch._runcommand = pagecmd