Made -h, help, --help work
[be.git] / be
1 #!/usr/bin/env python
2 # Copyright (C) 2005 Aaron Bentley and Panometrics, Inc.
3 # <abentley@panoramicfeedback.com>
4 #
5 #    This program is free software; you can redistribute it and/or modify
6 #    it under the terms of the GNU General Public License as published by
7 #    the Free Software Foundation; either version 2 of the License, or
8 #    (at your option) any later version.
9 #
10 #    This program is distributed in the hope that it will be useful,
11 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #    GNU General Public License for more details.
14 #
15 #    You should have received a copy of the GNU General Public License
16 #    along with this program; if not, write to the Free Software
17 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19
20 from libbe.cmdutil import *
21 from libbe.bugdir import tree_root, create_bug_dir
22 from libbe import names, plugin, cmdutil
23 import sys
24 import os
25 import becommands.severity
26 import becommands.list
27 import becommands.show
28 import becommands.set_root
29 import becommands.new
30 import becommands.close
31 import becommands.open
32 import becommands.inprogress
33 __doc__ = """Bugs Everywhere - Distributed bug tracking
34
35 Supported becommands
36  set-root: assign the root directory for bug tracking
37       new: Create a new bug
38      list: list bugs
39      show: show a particular bug
40     close: close a bug
41      open: re-open a bug
42  severity: %s
43
44 Unimplemented becommands
45   comment: append a comment to a bug
46 """ % becommands.severity.__desc__
47
48
49
50 if len(sys.argv) == 1 or sys.argv[1] in ('help', '--help', '-h'):
51     cmdlist = []
52     print """Bugs Everywhere - Distributed bug tracking
53     
54 Supported commands"""
55     for name, module in cmdutil.iter_commands():
56         cmdlist.append((name, module.__doc__))
57     for name, desc in cmdlist:
58         print "be %s\n    %s" % (name, desc)
59 else:
60     try:
61         try:
62             sys.exit(execute(sys.argv[1], sys.argv[2:]))
63         except KeyError, e:
64             raise UserError("Unknown command \"%s\"" % e.args[0])
65         except cmdutil.GetHelp:
66             print cmdutil.help(sys.argv[1])
67             sys.exit(0)
68         except cmdutil.UsageError:
69             print cmdutil.help(sys.argv[1])
70             sys.exit(1)
71     except UserError, e:
72         print e
73         sys.exit(1)