aboutsummaryrefslogtreecommitdiffstats
path: root/MgaRepo/commands/clone.py
diff options
context:
space:
mode:
Diffstat (limited to 'MgaRepo/commands/clone.py')
-rw-r--r--MgaRepo/commands/clone.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/MgaRepo/commands/clone.py b/MgaRepo/commands/clone.py
new file mode 100644
index 0000000..86793c9
--- /dev/null
+++ b/MgaRepo/commands/clone.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+from MgaRepo import Error
+from MgaRepo.command import *
+from MgaRepo.rpmutil import clone
+import getopt
+import sys
+
+HELP = """\
+Usage: repsys co [OPTIONS] URL [LOCALPATH]
+
+Checkout the package source from the Mandriva repository.
+
+If the 'mirror' option is enabled, the package is obtained from the mirror
+repository.
+
+You can specify the distro branch to checkout from by using distro/pkgname.
+
+Options:
+ -d The distribution branch to checkout from
+ -b The package branch
+ -M Do not use the mirror (use the main repository)
+ -h Show this message
+ -F Do not convert svn usernames to full name & email
+
+Examples:
+ repsys clone pkgname
+ repsys clone -d 2009.0 pkgname
+ repsys clone 2009.0/pkgame
+ repsys clone http://repos/svn/cnc/snapshot/foo
+ repsys clone http://repos/svn/cnc/snapshot/foo foo-pkg
+"""
+
+def parse_options():
+ parser = OptionParser(help=HELP)
+ parser.add_option("--distribution", "-d", dest="distro", default=None)
+ parser.add_option("--branch", "-b", dest="branch", default=None)
+ parser.add_option("-F", dest="fullnames", default=True,
+ action="store_false")
+ opts, args = parser.parse_args()
+ if len(args) not in (1, 2):
+ raise Error("invalid arguments")
+ # here we don't use package_url in order to notify the user we are
+ # using the mirror
+ opts.pkgdirurl = args[0]
+ if len(args) == 2:
+ opts.path = args[1]
+ else:
+ opts.path = None
+ return opts
+
+def main():
+ do_command(parse_options, clone)
+
+# vim:et:ts=4:sw=4