aboutsummaryrefslogtreecommitdiffstats
path: root/repsys
diff options
context:
space:
mode:
Diffstat (limited to 'repsys')
-rwxr-xr-xrepsys55
1 files changed, 55 insertions, 0 deletions
diff --git a/repsys b/repsys
new file mode 100755
index 0000000..99ff1e6
--- /dev/null
+++ b/repsys
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+from RepSys import Error
+from RepSys.command import *
+import getopt
+import sys
+
+VERSION="1.5.3"
+
+HELP = """\
+Usage: repsys COMMAND [COMMAND ARGUMENTS]
+
+Useful commands:
+ co
+ submit
+ create
+ getspec
+ getsrpm
+ changed
+ authoremail
+
+Run "repsys COMMAND --help" for more information.
+
+Written by Gustavo Niemeyer <gustavo@niemeyer.net>
+"""
+
+def parse_options():
+ parser = OptionParser(help=HELP, version="%prog "+VERSION)
+ parser.disable_interspersed_args()
+ parser.add_option("--debug", action="store_true")
+ opts, args = parser.parse_args()
+ if len(args) < 1:
+ parser.print_help(sys.stderr)
+ sys.exit(1)
+ opts.command = args[0]
+ opts.argv = args
+ return opts
+
+def dispatch_command(command, argv, debug=0):
+ sys.argv = argv
+ try:
+ repsys_module = __import__("RepSys.commands."+command)
+ commands_module = getattr(repsys_module, "commands")
+ command_module = getattr(commands_module, command)
+ except (ImportError, AttributeError):
+ if debug:
+ import traceback
+ traceback.print_exc()
+ sys.exit(1)
+ raise Error, "invalid command '%s'" % command
+ command_module.main()
+
+if __name__ == "__main__":
+ do_command(parse_options, dispatch_command)
+
+# vim:et:ts=4:sw=4