/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
4763.2.4 by John Arbash Meinel
merge bzr.2.1 in preparation for NEWS entry.
1
# Copyright (C) 2005, 2006, 2007, 2009, 2010 Canonical Ltd
2052.3.1 by John Arbash Meinel
Add tests to cleanup the copyright of all source files
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2052.3.1 by John Arbash Meinel
Add tests to cleanup the copyright of all source files
16
1091 by Martin Pool
- new shell-complete command to help zsh completion
17
import sys
18
19
7143.15.2 by Jelmer Vernooij
Run autopep8.
20
def shellcomplete(context=None, outfile=None):
1963.2.6 by Robey Pointer
pychecker is on crack; go back to using 'is None'.
21
    if outfile is None:
1091 by Martin Pool
- new shell-complete command to help zsh completion
22
        outfile = sys.stdout
1963.2.6 by Robey Pointer
pychecker is on crack; go back to using 'is None'.
23
    if context is None:
7143.15.2 by Jelmer Vernooij
Run autopep8.
24
        shellcomplete_commands(outfile=outfile)
1091 by Martin Pool
- new shell-complete command to help zsh completion
25
    else:
7143.15.2 by Jelmer Vernooij
Run autopep8.
26
        shellcomplete_on_command(context, outfile=outfile)
1091 by Martin Pool
- new shell-complete command to help zsh completion
27
2190.2.1 by Martin Pool
remove global registration of short options
28
29
def shellcomplete_on_command(cmdname, outfile=None):
1091 by Martin Pool
- new shell-complete command to help zsh completion
30
    cmdname = str(cmdname)
31
1963.2.6 by Robey Pointer
pychecker is on crack; go back to using 'is None'.
32
    if outfile is None:
1091 by Martin Pool
- new shell-complete command to help zsh completion
33
        outfile = sys.stdout
34
35
    from inspect import getdoc
6929.1.1 by Jelmer Vernooij
Add basic tests.
36
    from . import commands
1185.1.9 by Robert Collins
Clint Adams patch for shell completion hints
37
    cmdobj = commands.get_cmd_object(cmdname)
1091 by Martin Pool
- new shell-complete command to help zsh completion
38
1185.1.9 by Robert Collins
Clint Adams patch for shell completion hints
39
    doc = getdoc(cmdobj)
1963.2.6 by Robey Pointer
pychecker is on crack; go back to using 'is None'.
40
    if doc is None:
7143.15.2 by Jelmer Vernooij
Run autopep8.
41
        raise NotImplementedError(
42
            "sorry, no detailed shellcomplete yet for %r" % cmdname)
1091 by Martin Pool
- new shell-complete command to help zsh completion
43
2190.2.1 by Martin Pool
remove global registration of short options
44
    shellcomplete_on_options(cmdobj.options().values(), outfile=outfile)
1185.1.9 by Robert Collins
Clint Adams patch for shell completion hints
45
    for aname in cmdobj.takes_args:
46
        outfile.write(aname + '\n')
1091 by Martin Pool
- new shell-complete command to help zsh completion
47
48
2190.2.1 by Martin Pool
remove global registration of short options
49
def shellcomplete_on_options(options, outfile=None):
50
    for opt in options:
4634.95.1 by Benoît Pierre
Small fix for handling of short option names in shellcomplete_on_options.
51
        short_name = opt.short_name()
52
        if short_name:
2190.2.1 by Martin Pool
remove global registration of short options
53
            outfile.write('"(--%s -%s)"{--%s,-%s}\n'
7143.15.2 by Jelmer Vernooij
Run autopep8.
54
                          % (opt.name, short_name, opt.name, short_name))
2190.2.1 by Martin Pool
remove global registration of short options
55
        else:
56
            outfile.write('--%s\n' % opt.name)
1091 by Martin Pool
- new shell-complete command to help zsh completion
57
58
6929.1.1 by Jelmer Vernooij
Add basic tests.
59
def shellcomplete_commands(outfile=None):
1091 by Martin Pool
- new shell-complete command to help zsh completion
60
    """List all commands"""
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
61
    from . import commands
1091 by Martin Pool
- new shell-complete command to help zsh completion
62
    from inspect import getdoc
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
63
4119.3.16 by Robert Collins
Shellcompletion apparently isn't tested.
64
    commands.install_bzr_command_hooks()
65
1963.2.6 by Robey Pointer
pychecker is on crack; go back to using 'is None'.
66
    if outfile is None:
1091 by Martin Pool
- new shell-complete command to help zsh completion
67
        outfile = sys.stdout
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
68
1091 by Martin Pool
- new shell-complete command to help zsh completion
69
    cmds = []
4119.3.8 by Robert Collins
Get missing command support sorted out.
70
    for cmdname in commands.all_command_names():
4119.3.16 by Robert Collins
Shellcompletion apparently isn't tested.
71
        cmd = commands.get_cmd_object(cmdname)
4119.3.8 by Robert Collins
Get missing command support sorted out.
72
        cmds.append((cmdname, cmd))
73
        for alias in cmd.aliases:
74
            cmds.append((alias, cmd))
1091 by Martin Pool
- new shell-complete command to help zsh completion
75
    cmds.sort()
4119.3.8 by Robert Collins
Get missing command support sorted out.
76
    for cmdname, cmd in cmds:
77
        if cmd.hidden:
1091 by Martin Pool
- new shell-complete command to help zsh completion
78
            continue
4119.3.8 by Robert Collins
Get missing command support sorted out.
79
        doc = getdoc(cmd)
1963.2.6 by Robey Pointer
pychecker is on crack; go back to using 'is None'.
80
        if doc is None:
2120.2.1 by John Arbash Meinel
Remove tabs from source files, and add a test to keep it that way.
81
            outfile.write(cmdname + '\n')
1091 by Martin Pool
- new shell-complete command to help zsh completion
82
        else:
2120.2.1 by John Arbash Meinel
Remove tabs from source files, and add a test to keep it that way.
83
            doclines = doc.splitlines()
84
            firstline = doclines[0].lower()
85
            outfile.write(cmdname + ':' + firstline[0:-1] + '\n')