##// END OF EJS Templates
Use the pager given by the environment to display long output...
David Soria Parra -
r6323:6e1308a0 default
parent child Browse files
Show More
@@ -0,0 +1,54 b''
1 # pager.py - display output using a pager
2 #
3 # Copyright 2008 David Soria Parra <dsp@php.net>
4 #
5 # This software may be used and distributed according to the terms
6 # of the GNU General Public License, incorporated herein by reference.
7 #
8 # To load the extension add it to your .hgrc file
9 #
10 # [extension]
11 # hgext.pager =
12 #
13 # To set the pager that should be used, set the application variable
14 #
15 # [pager]
16 # application = less
17 #
18 # You can also set environment variables there
19 #
20 # [pager]
21 # application = LESS='FSRX' less
22 #
23 # If no application is set, the pager extensions use the environment
24 # variable $PAGER. If neither pager.application, nor
25 # $PAGER is set, no pager is used.
26 #
27 # If you notice "BROKEN PIPE" error messages, you can disable them
28 # by setting
29 #
30 # [pager]
31 # quiet = True
32 #
33
34 import sys, os, signal
35
36 def getpager(ui):
37 '''return a pager
38
39 We separate this method from the pager class as we don't want to
40 instantiate a pager if it is not used at all
41 '''
42 if sys.stdout.isatty():
43 return (ui.config("pager", "application")
44 or os.environ.get("PAGER"))
45
46 def uisetup(ui):
47 # disable broken pipe error messages
48 if ui.configbool('pager', 'quiet', False):
49 signal.signal(signal.SIGPIPE, signal.SIG_DFL)
50
51 if getpager(ui):
52 pager = os.popen(getpager(ui), 'wb')
53 sys.stderr = pager
54 sys.stdout = pager
General Comments 0
You need to be logged in to leave comments. Login now