diff --git a/django_maven/management/commands/maven.py b/django_maven/management/commands/maven.py index 65301a8..de3f6d8 100644 --- a/django_maven/management/commands/maven.py +++ b/django_maven/management/commands/maven.py @@ -35,10 +35,13 @@ def usage(self, subcommand): return usage def create_parser(self, prog_name, subcommand, subcommand_class): - return OptionParser(prog=prog_name, - usage=subcommand_class.usage(subcommand), - version=subcommand_class.get_version(), - option_list=subcommand_class.option_list) + if not self.use_argparse: + return OptionParser(prog=prog_name, + usage=subcommand_class.usage(subcommand), + version=subcommand_class.get_version(), + option_list=subcommand_class.option_list) + else: + return super(Command, self).create_parser(prog_name, subcommand) def run_from_argv(self, argv): if len(argv) <= 2 or argv[2] in ['-h', '--help']: @@ -47,7 +50,12 @@ def run_from_argv(self, argv): subcommand_class = self._get_subcommand_class(argv[2]) parser = self.create_parser(argv[0], argv[2], subcommand_class) - options, args = parser.parse_args(argv[3:]) + if self.use_argparse: + options = parser.parse_args(argv[3:]) + cmd_options = vars(options) + args = cmd_options.pop('args', ()) + else: + options, args = parser.parse_args(argv[3:]) handle_default_options(options) try: subcommand_class.execute(*args, **options.__dict__)