aboutsummaryrefslogtreecommitdiffstats
path: root/MgaRepo/commands/clone.py
blob: 86793c90cacebb5cc14e8964421aa3c36a8f11e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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