bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 
2052.3.1
by John Arbash Meinel
 Add tests to cleanup the copyright of all source files  | 
1  | 
# Copyright (C) 2005, 2006 Canonical Ltd
 | 
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
 | 
|
15  | 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
|
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  | 
||
28  | 
def shellcomplete_on_command(cmdname, outfile = None):  | 
|
29  | 
cmdname = str(cmdname)  | 
|
30  | 
||
| 
1963.2.6
by Robey Pointer
 pychecker is on crack; go back to using 'is None'.  | 
31  | 
if outfile is None:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
32  | 
outfile = sys.stdout  | 
33  | 
||
34  | 
from inspect import getdoc  | 
|
35  | 
import commands  | 
|
| 
1185.1.9
by Robert Collins
 Clint Adams patch for shell completion hints  | 
36  | 
cmdobj = commands.get_cmd_object(cmdname)  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
37  | 
|
| 
1185.1.9
by Robert Collins
 Clint Adams patch for shell completion hints  | 
38  | 
doc = getdoc(cmdobj)  | 
| 
1963.2.6
by Robey Pointer
 pychecker is on crack; go back to using 'is None'.  | 
39  | 
if doc is None:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
40  | 
raise NotImplementedError("sorry, no detailed shellcomplete yet for %r" % cmdname)  | 
41  | 
||
| 
1185.1.9
by Robert Collins
 Clint Adams patch for shell completion hints  | 
42  | 
shellcomplete_on_option(cmdobj.takes_options, outfile = None)  | 
43  | 
for aname in cmdobj.takes_args:  | 
|
44  | 
outfile.write(aname + '\n')  | 
|
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
45  | 
|
46  | 
||
| 
1185.16.45
by Martin Pool
 - refactor handling of short option names  | 
47  | 
def shellcomplete_on_option(options, outfile=None):  | 
48  | 
from bzrlib.option import Option  | 
|
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
49  | 
if not options:  | 
50  | 
        return
 | 
|
| 
1963.2.6
by Robey Pointer
 pychecker is on crack; go back to using 'is None'.  | 
51  | 
if outfile is None:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
52  | 
outfile = sys.stdout  | 
53  | 
for on in options:  | 
|
| 
1185.16.45
by Martin Pool
 - refactor handling of short option names  | 
54  | 
for shortname, longname in Option.SHORT_OPTIONS.items():  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
55  | 
if longname == on:  | 
56  | 
l = '"(--' + on + ' -' + shortname + ')"{--' + on + ',-' + shortname + '}'  | 
|
57  | 
                break
 | 
|
58  | 
else:  | 
|
59  | 
l = '--' + on  | 
|
60  | 
outfile.write(l + '\n')  | 
|
61  | 
||
62  | 
||
63  | 
def shellcomplete_commands(outfile = None):  | 
|
64  | 
"""List all commands"""  | 
|
65  | 
import inspect  | 
|
66  | 
import commands  | 
|
67  | 
from inspect import getdoc  | 
|
68  | 
||
| 
1963.2.6
by Robey Pointer
 pychecker is on crack; go back to using 'is None'.  | 
69  | 
if outfile is None:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
70  | 
outfile = sys.stdout  | 
71  | 
||
72  | 
cmds = []  | 
|
73  | 
for cmdname, cmdclass in commands.get_all_cmds():  | 
|
74  | 
cmds.append((cmdname, cmdclass))  | 
|
75  | 
for alias in cmdclass.aliases:  | 
|
76  | 
cmds.append((alias, cmdclass))  | 
|
77  | 
cmds.sort()  | 
|
78  | 
for cmdname, cmdclass in cmds:  | 
|
79  | 
if cmdclass.hidden:  | 
|
80  | 
            continue
 | 
|
81  | 
doc = getdoc(cmdclass)  | 
|
| 
1963.2.6
by Robey Pointer
 pychecker is on crack; go back to using 'is None'.  | 
82  | 
if doc is None:  | 
| 
1091
by Martin Pool
 - new shell-complete command to help zsh completion  | 
83  | 
outfile.write(cmdname + '\n')  | 
84  | 
else:  | 
|
85  | 
doclines = doc.splitlines()  | 
|
86  | 
firstline = doclines[0].lower()  | 
|
87  | 
outfile.write(cmdname + ':' + firstline[0:-1] + '\n')  |