hgext/pager.py
author Brodie Rao <brodie@bitheap.org>
Sun, 10 Oct 2010 12:21:49 -0500
changeset 12695 05077896ffe2
parent 12694 04f6de46bf3a
child 12876 a3b182dd548a
permissions -rw-r--r--
pager: don't run pager if nothing is written to stdout/stderr This decides when to run the pager based on the first call to ui.write() and ui.write_err(). This has the side effect of not the output of subprocesses that write output before hg does.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
     1
# pager.py - display output using a pager
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
     2
#
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
     3
# Copyright 2008 David Soria Parra <dsp@php.net>
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
     4
#
8225
46293a0c7e9f updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents: 7995
diff changeset
     5
# This software may be used and distributed according to the terms of the
10263
25e572394f5c Update license to GPLv2+
Matt Mackall <mpm@selenic.com>
parents: 10112
diff changeset
     6
# GNU General Public License version 2 or any later version.
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
     7
#
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 11414
diff changeset
     8
# To load the extension, add it to your configuration file:
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
     9
#
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
    10
#   [extension]
10112
703db37d186b hgext: enable extensions without "hgext." prefix in help texts
Martin Geisler <mg@lazybytes.net>
parents: 9841
diff changeset
    11
#   pager =
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
    12
#
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    13
# Run "hg help pager" to get info on configuration.
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    14
8894
868670dbc237 extensions: improve the consistency of synopses
Cédric Duval <cedricduval@free.fr>
parents: 8225
diff changeset
    15
'''browse command output with an external pager
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    16
9212
dfc1d5da98f0 pager: use reST syntax for literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9069
diff changeset
    17
To set the pager that should be used, set the application variable::
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    18
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    19
  [pager]
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    20
  pager = LESS='FSRX' less
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    21
9267
bd9e5d200186 pager: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9212
diff changeset
    22
If no pager is set, the pager extensions uses the environment variable
bd9e5d200186 pager: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9212
diff changeset
    23
$PAGER. If neither pager.pager, nor $PAGER is set, no pager is used.
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    24
12695
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    25
By default, the pager is only executed if a command has output. To
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    26
force the pager to run even if a command prints nothing, set::
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    27
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    28
  [pager]
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    29
  force = True
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    30
9267
bd9e5d200186 pager: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9212
diff changeset
    31
If you notice "BROKEN PIPE" error messages, you can disable them by
bd9e5d200186 pager: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9212
diff changeset
    32
setting::
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    33
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    34
  [pager]
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    35
  quiet = True
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    36
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    37
You can disable the pager for certain commands by adding them to the
9212
dfc1d5da98f0 pager: use reST syntax for literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9069
diff changeset
    38
pager.ignore list::
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    39
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    40
  [pager]
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    41
  ignore = version, help, update
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    42
9267
bd9e5d200186 pager: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9212
diff changeset
    43
You can also enable the pager only for certain commands using
9841
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
    44
pager.attend. Below is the default list of commands to be paged::
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    45
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    46
  [pager]
9841
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
    47
  attend = annotate, cat, diff, export, glog, log, qdiff
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
    48
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
    49
Setting pager.attend to an empty value will cause all commands to be
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
    50
paged.
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    51
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    52
If pager.attend is present, pager.ignore will be ignored.
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    53
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10516
diff changeset
    54
To ignore global commands like :hg:`version` or :hg:`help`, you have
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 11414
diff changeset
    55
to specify them in your user configuration file.
12694
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
    56
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
    57
The --pager=... option can also be used to control when the pager is
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
    58
used. Use a boolean value like yes, no, on, off, or use auto for
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
    59
normal behavior.
6462
6c4e12682fb9 pager: make config info accessible with "hg help pager"
Christian Ebert <blacktrash@gmx.net>
parents: 6457
diff changeset
    60
'''
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
    61
11240
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    62
import sys, os, signal, shlex, errno
12694
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
    63
from mercurial import commands, dispatch, util, extensions
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
    64
from mercurial.i18n import _
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
    65
12695
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    66
def _runpager(p, sigpipe=False):
11182
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    67
    if not hasattr(os, 'fork'):
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    68
        sys.stderr = sys.stdout = util.popen(p, 'wb')
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    69
        return
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    70
    fdin, fdout = os.pipe()
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    71
    pid = os.fork()
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    72
    if pid == 0:
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    73
        os.close(fdin)
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    74
        os.dup2(fdout, sys.stdout.fileno())
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    75
        os.dup2(fdout, sys.stderr.fileno())
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    76
        os.close(fdout)
12695
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    77
        if sigpipe:
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    78
            signal.signal(signal.SIGPIPE, signal.SIG_DFL)
11182
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    79
        return
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    80
    os.dup2(fdin, sys.stdin.fileno())
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    81
    os.close(fdin)
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    82
    os.close(fdout)
11240
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    83
    try:
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    84
        os.execvp('/bin/sh', ['/bin/sh', '-c', p])
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    85
    except OSError, e:
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    86
        if e.errno == errno.ENOENT:
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    87
            # no /bin/sh, try executing the pager directly
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    88
            args = shlex.split(p)
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    89
            os.execvp(args[0], args)
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    90
        else:
ccb4057e19e6 pager: exec pager using /bin/sh -c
Brodie Rao <brodie@bitheap.org>
parents: 11182
diff changeset
    91
            raise
11182
3c368a1c962d pager: fork and exec pager as parent process
Brodie Rao <brodie@bitheap.org>
parents: 10516
diff changeset
    92
6323
6e1308a09ffd Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff changeset
    93
def uisetup(ui):
11414
0fa4474bdc2f pager: respect HGPLAIN
Yuya Nishihara <yuya@tcha.org>
parents: 11328
diff changeset
    94
    if ui.plain():
0fa4474bdc2f pager: respect HGPLAIN
Yuya Nishihara <yuya@tcha.org>
parents: 11328
diff changeset
    95
        return
0fa4474bdc2f pager: respect HGPLAIN
Yuya Nishihara <yuya@tcha.org>
parents: 11328
diff changeset
    96
12695
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    97
    class pagerui(ui.__class__):
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    98
        _pager = None
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
    99
        _pagerstarted = False
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   100
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   101
        def write(self, *args, **opts):
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   102
            if self._pager and not self._pagerstarted:
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   103
                self._pagerstarted = True
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   104
                self._pager()
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   105
            return super(pagerui, self).write(*args, **opts)
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   106
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   107
        def write_err(self, *args, **opts):
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   108
            if self._pager and not self._pagerstarted:
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   109
                self._pagerstarted = True
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   110
                self._pager()
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   111
            return super(pagerui, self).write(*args, **opts)
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   112
    ui.__class__ = pagerui
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   113
7216
292fb2ad2846 extensions: use new wrapper functions
Matt Mackall <mpm@selenic.com>
parents: 6548
diff changeset
   114
    def pagecmd(orig, ui, options, cmd, cmdfunc):
6417
13fafd8cc4a1 pager: Add a configuration to enable/disable the pager for certain commands
David Soria Parra <dsp <at> php.net>
parents: 6324
diff changeset
   115
        p = ui.config("pager", "pager", os.environ.get("PAGER"))
6457
7ef281e78c64 Merge from crew-stable.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6456 6417
diff changeset
   116
        if p and sys.stdout.isatty() and '--debugger' not in sys.argv:
9841
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
   117
            attend = ui.configlist('pager', 'attend', attended)
12694
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   118
            auto = options['pager'] == 'auto'
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   119
            always = util.parsebool(options['pager'])
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   120
            if (always or auto and
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   121
                (cmd in attend or
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   122
                 (cmd not in ui.configlist('pager', 'ignore') and not attend))):
11328
d357d147f0d4 pager: set ui.formatted() prior to redirecting stdout.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11241
diff changeset
   123
                ui.setconfig('ui', 'formatted', ui.formatted())
10516
80a1161bc3b5 pager: set ui.interactive=False when enabled
Brodie Rao <me+hg@dackz.net>
parents: 10263
diff changeset
   124
                ui.setconfig('ui', 'interactive', False)
12695
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   125
                sigpipe = ui.configbool('pager', 'quiet')
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   126
                if ui.configbool('pager', 'force'):
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   127
                    _runpager(p, sigpipe)
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   128
                else:
05077896ffe2 pager: don't run pager if nothing is written to stdout/stderr
Brodie Rao <brodie@bitheap.org>
parents: 12694
diff changeset
   129
                    ui._pager = lambda: _runpager(p, sigpipe)
7216
292fb2ad2846 extensions: use new wrapper functions
Matt Mackall <mpm@selenic.com>
parents: 6548
diff changeset
   130
        return orig(ui, options, cmd, cmdfunc)
6417
13fafd8cc4a1 pager: Add a configuration to enable/disable the pager for certain commands
David Soria Parra <dsp <at> php.net>
parents: 6324
diff changeset
   131
7216
292fb2ad2846 extensions: use new wrapper functions
Matt Mackall <mpm@selenic.com>
parents: 6548
diff changeset
   132
    extensions.wrapfunction(dispatch, '_runcommand', pagecmd)
9841
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
   133
12694
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   134
def extsetup(ui):
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   135
    commands.globalopts.append(
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   136
        ('', 'pager', 'auto',
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   137
         _("when to paginate (boolean, always, auto, or never)"),
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   138
         _('TYPE')))
04f6de46bf3a pager: add global --pager=<auto/boolean> option
Brodie Rao <brodie@bitheap.org>
parents: 12083
diff changeset
   139
9841
7cd6dee6fe37 pager: provide a default attend list
Brodie Rao <me+hg@dackz.net>
parents: 9267
diff changeset
   140
attended = ['annotate', 'cat', 'diff', 'export', 'glog', 'log', 'qdiff']