pager.py
35 lines
| 991 B
| text/x-python
|
PythonLexer
/ hgext / pager.py
David Soria Parra
|
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
|
r6324 | # To load the extension, add it to your .hgrc file: | ||
David Soria Parra
|
r6323 | # | ||
# [extension] | ||||
# hgext.pager = | ||||
# | ||||
Matt Mackall
|
r6324 | # To set the pager that should be used, set the application variable: | ||
David Soria Parra
|
r6323 | # | ||
# [pager] | ||||
Matt Mackall
|
r6324 | # pager = LESS='FSRX' less | ||
David Soria Parra
|
r6323 | # | ||
Matt Mackall
|
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
|
r6323 | # | ||
# If you notice "BROKEN PIPE" error messages, you can disable them | ||||
Matt Mackall
|
r6324 | # by setting: | ||
David Soria Parra
|
r6323 | # | ||
Matt Mackall
|
r6324 | # [pager] | ||
# quiet = True | ||||
David Soria Parra
|
r6323 | |||
import sys, os, signal | ||||
def uisetup(ui): | ||||
Matt Mackall
|
r6324 | p = ui.config("pager", "pager", os.environ.get("PAGER")) | ||
if p and sys.stdout.isatty(): | ||||
if ui.configbool('pager', 'quiet'): | ||||
signal.signal(signal.SIGPIPE, signal.SIG_DFL) | ||||
sys.stderr = sys.stdout = os.popen(p, "wb") | ||||