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  | 
||
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:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
24  | 
shellcomplete_commands(outfile = outfile)  | 
25  | 
else:  | 
|
26  | 
shellcomplete_on_command(context, outfile = outfile)  | 
|
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  | 
|
36  | 
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:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
41  | 
raise NotImplementedError("sorry, no detailed shellcomplete yet for %r" % cmdname)  | 
42  | 
||
| 
2190.2.1
by Martin Pool
 remove global registration of short options  | 
43  | 
shellcomplete_on_options(cmdobj.options().values(), outfile=outfile)  | 
| 
1185.1.9
by Robert Collins
 Clint Adams patch for shell completion hints  | 
44  | 
for aname in cmdobj.takes_args:  | 
45  | 
outfile.write(aname + '\n')  | 
|
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
46  | 
|
47  | 
||
| 
2190.2.1
by Martin Pool
 remove global registration of short options  | 
48  | 
def shellcomplete_on_options(options, outfile=None):  | 
49  | 
for opt in options:  | 
|
| 
4634.95.1
by Benoît Pierre
 Small fix for handling of short option names in shellcomplete_on_options.  | 
50  | 
short_name = opt.short_name()  | 
51  | 
if short_name:  | 
|
| 
2190.2.1
by Martin Pool
 remove global registration of short options  | 
52  | 
outfile.write('"(--%s -%s)"{--%s,-%s}\n'  | 
| 
4634.95.1
by Benoît Pierre
 Small fix for handling of short option names in shellcomplete_on_options.  | 
53  | 
% (opt.name, short_name, opt.name, short_name))  | 
| 
2190.2.1
by Martin Pool
 remove global registration of short options  | 
54  | 
else:  | 
55  | 
outfile.write('--%s\n' % opt.name)  | 
|
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
56  | 
|
57  | 
||
58  | 
def shellcomplete_commands(outfile = None):  | 
|
59  | 
"""List all commands"""  | 
|
60  | 
import inspect  | 
|
61  | 
import commands  | 
|
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')  |