Merge from Ben Finney's RCS unittest patch
[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 import sys
21 from libbe import cmdutil
22
23 __doc__ == cmdutil.help()
24
25 if len(sys.argv) == 1 or sys.argv[1] in ('--help', '-h'):
26     print cmdutil.help()
27 elif sys.argv[1] == '--complete':
28     for command, module in cmdutil.iter_commands():
29         print command
30     print '\n'.join(["--help","--complete","--options"])
31 else:
32     try:
33         try:
34             sys.exit(cmdutil.execute(sys.argv[1], sys.argv[2:]))
35         except KeyError, e:
36             raise cmdutil.UserError("Unknown command \"%s\"" % e.args[0])
37         except cmdutil.GetHelp:
38             print cmdutil.help(sys.argv[1])
39             sys.exit(0)
40         except cmdutil.GetCompletions, e:
41             print '\n'.join(e.completions)
42             sys.exit(0)
43         except cmdutil.UsageError, e:
44             print "Invalid usage:", e
45             print "\nArgs:", sys.argv[1:]
46             print cmdutil.help(sys.argv[1])
47             sys.exit(1)
48     except cmdutil.UserError, e:
49         print "ERROR:"
50         print e
51         sys.exit(1)