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