diff options
author | Per Øyvind Karlsen <proyvind@moondrake.org> | 2016-05-28 22:57:39 +0200 |
---|---|---|
committer | Per Øyvind Karlsen <proyvind@moondrake.org> | 2016-05-28 22:57:39 +0200 |
commit | 3c9999b9520abf6a8db83a146c134661dce60dd8 (patch) | |
tree | 81334a5a510aae05e78c4c5ce8ec296473b637ba /MgaRepo/commands/clone.py | |
parent | 9d8d2bc03257a39bc5ddf6bec848431b4e538662 (diff) | |
download | mgarepo-3c9999b9520abf6a8db83a146c134661dce60dd8.tar mgarepo-3c9999b9520abf6a8db83a146c134661dce60dd8.tar.gz mgarepo-3c9999b9520abf6a8db83a146c134661dce60dd8.tar.bz2 mgarepo-3c9999b9520abf6a8db83a146c134661dce60dd8.tar.xz mgarepo-3c9999b9520abf6a8db83a146c134661dce60dd8.zip |
- do not use shell for running external programs
- add suport for (quick) git-svn cloning of package repositories
Diffstat (limited to 'MgaRepo/commands/clone.py')
-rw-r--r-- | MgaRepo/commands/clone.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/MgaRepo/commands/clone.py b/MgaRepo/commands/clone.py new file mode 100644 index 0000000..589ec75 --- /dev/null +++ b/MgaRepo/commands/clone.py @@ -0,0 +1,51 @@ +#!/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 + +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) + 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 |