diff options
Diffstat (limited to 'MgaRepo/commands')
-rw-r--r-- | MgaRepo/commands/github.py | 53 | ||||
-rw-r--r-- | MgaRepo/commands/githubimport.py | 33 |
2 files changed, 53 insertions, 33 deletions
diff --git a/MgaRepo/commands/github.py b/MgaRepo/commands/github.py new file mode 100644 index 0000000..c2fd188 --- /dev/null +++ b/MgaRepo/commands/github.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +from MgaRepo import Error +from MgaRepo.command import * +from MgaRepo.GitHub import GitHub +import getopt +import sys + +HELP = """\ +Usage: mgarepo github [OPTIONS] URL + +Import a git-svn cloned repository to github + +Options: + -h Show this message + +Examples: + mgarepo github import existingpkg + mgarepo github import svn://svn.mageia.org/svn/packages/cauldron/existingpkg +""" + +def github_import(target=".", **kwargs): + github = GitHub() + github.import_package(target) + +def github_delete(pkg, **kwargs): + github = GitHub() + github.delete_repository(pkg) + +def parse_options(): + parser = OptionParser(help=HELP) + opts, args = parser.parse_args() + if len(args) < 2:#not in (2, 3): + raise Error("invalid arguments") + opts.func = globals().get("github_"+args[0], None) + if args[0] == "import": + opts.target = args[1] + elif args[0] == "delete": + opts.pkg = args[1] + else: + raise Error("invalid arguments: %s" % str(args)) + return opts + +def dispatch_cmd(*args, **kwargs): + func = kwargs.pop("func", None) + if func: + func(**kwargs) + else: + raise Error("invalid command: %s %s" % (sys.argv[0], sys.argv[1])) + +def main(): + do_command(parse_options, dispatch_cmd) + +# vim:et:ts=4:sw=4 diff --git a/MgaRepo/commands/githubimport.py b/MgaRepo/commands/githubimport.py deleted file mode 100644 index afc73c5..0000000 --- a/MgaRepo/commands/githubimport.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python -from MgaRepo import Error -from MgaRepo.command import * -from MgaRepo.GitHub import GitHub -import getopt -import sys - -HELP = """\ -Usage: mgarepo github-import [OPTIONS] URL - -Import a git-svn cloned repository to github - -Options: - -h Show this message - -Examples: - mgarepo githubimport existingpkg - mgarepo githubimport svn+ssh://svn.mageia.org/svn/packages/cauldron/existingpkg -""" - -def githubimport(target="."): - github = GitHub() - github.import_package(target) - -def parse_options(): - parser = OptionParser(help=HELP) - opts, args = parser.parse_args() - return opts - -def main(): - do_command(parse_options, githubimport) - -# vim:et:ts=4:sw=4 |