emirrordist: portage.util._argparse
authorZac Medico <zmedico@gentoo.org>
Fri, 2 Aug 2013 23:27:17 +0000 (16:27 -0700)
committerZac Medico <zmedico@gentoo.org>
Fri, 2 Aug 2013 23:27:17 +0000 (16:27 -0700)
pym/portage/_emirrordist/main.py

index f4824f6b5f2d27d68cf8888da2efb629c4a87d3d..becd11b7bea8a02c69e910cac8df7c9a14244287 100644 (file)
@@ -2,12 +2,12 @@
 # Distributed under the terms of the GNU General Public License v2
 
 import logging
-import optparse
 import sys
 
 import portage
 from portage import os
 from portage.util import normalize_path, writemsg_level
+from portage.util._argparse import ArgumentParser
 from portage.util._async.run_main_scheduler import run_main_scheduler
 from portage.util._async.SchedulerInterface import SchedulerInterface
 from portage.util._eventloop.global_event_loop import global_event_loop
@@ -47,18 +47,21 @@ common_options = (
        {
                "longopt"  : "--jobs",
                "shortopt" : "-j",
-               "help"     : "number of concurrent jobs to run"
+               "help"     : "number of concurrent jobs to run",
+               "type"     : int
        },
        {
                "longopt"  : "--load-average",
                "shortopt" : "-l",
                "help"     : "load average limit for spawning of new concurrent jobs",
-               "metavar"  : "LOAD"
+               "metavar"  : "LOAD",
+               "type"     : float
        },
        {
                "longopt"  : "--tries",
                "help"     : "maximum number of tries per file, 0 means unlimited (default is 10)",
-               "default"  : 10
+               "default"  : 10,
+               "type"     : int
        },
        {
                "longopt"  : "--repo",
@@ -87,7 +90,6 @@ common_options = (
                "help"     : "manually override \"strict\" FEATURES setting",
                "choices"  : ("y", "n"),
                "metavar"  : "<y|n>",
-               "type"     : "choice"
        },
        {
                "longopt"  : "--failure-log",
@@ -178,7 +180,8 @@ common_options = (
                        "recycle dir, measured in seconds (defaults to "
                        "the equivalent of 60 days)",
                "default"  : 60 * seconds_per_day,
-               "metavar"  : "SECONDS"
+               "metavar"  : "SECONDS",
+               "type"     : int
        },
        {
                "longopt"  : "--fetch-log-dir",
@@ -198,18 +201,17 @@ def parse_args(args):
        description = "emirrordist - a fetch tool for mirroring " \
                "of package distfiles"
        usage = "emirrordist [options] <action>"
-       parser = optparse.OptionParser(description=description, usage=usage)
+       parser = ArgumentParser(description=description, usage=usage)
 
-       actions = optparse.OptionGroup(parser, 'Actions')
-       actions.add_option("--version",
+       actions = parser.add_argument_group('Actions')
+       actions.add_argument("--version",
                action="store_true",
                help="display portage version and exit")
-       actions.add_option("--mirror",
+       actions.add_argument("--mirror",
                action="store_true",
                help="mirror distfiles for the selected repository")
-       parser.add_option_group(actions)
 
-       common = optparse.OptionGroup(parser, 'Common options')
+       common = parser.add_argument_group('Common options')
        for opt_info in common_options:
                opt_pargs = [opt_info["longopt"]]
                if opt_info.get("shortopt"):
@@ -218,10 +220,9 @@ def parse_args(args):
                for k in ("action", "choices", "default", "metavar", "type"):
                        if k in opt_info:
                                opt_kwargs[k] = opt_info[k]
-               common.add_option(*opt_pargs, **opt_kwargs)
-       parser.add_option_group(common)
+               common.add_argument(*opt_pargs, **opt_kwargs)
 
-       options, args = parser.parse_args(args)
+       options, args = parser.parse_known_args(args)
 
        return (parser, options, args)