From: Christopher Allan Webber Date: Fri, 9 Aug 2013 18:56:23 +0000 (-0500) Subject: `gmg reprocess available --action-help` now tells you processor arguments! X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=55a10fef0ae97cb33c8393a7a25487c2666b4cf1;p=mediagoblin.git `gmg reprocess available --action-help` now tells you processor arguments! Every reprocessing action possible can inform you of its command line argument stuff! Is that awesome or what? --- diff --git a/mediagoblin/gmg_commands/reprocess.py b/mediagoblin/gmg_commands/reprocess.py index d6ac99ac..70163928 100644 --- a/mediagoblin/gmg_commands/reprocess.py +++ b/mediagoblin/gmg_commands/reprocess.py @@ -37,6 +37,11 @@ def reprocess_parser_setup(subparser): "id_or_type", help="Media id or media type to check") + available_parser.add_argument( + "--action-help", + action="store_true", + help="List argument help for each action available") + ############################################ # run command (TODO: and bulk_run command??) @@ -221,13 +226,22 @@ def available(args): processors = manager.list_eligible_processors(media_entry) print "Available processors:" - print "---------------------" + print "=====================" - for processor in processors: - if processor.description: - print " - %s: %s" % (processor.name, processor.description) - else: - print " - %s" % processor.name + if args.action_help: + for processor in processors: + print processor.name + print "-" * len(processor.name) + + parser = processor.generate_parser() + parser.print_help() + + else: + for processor in processors: + if processor.description: + print " - %s: %s" % (processor.name, processor.description) + else: + print " - %s" % processor.name def run(args): diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index ea372e76..f4ba4e5a 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -313,7 +313,8 @@ class CommonImageProcessor(MediaProcessor): def resize_step(self): pass - def _add_width_height_args(self, parser): + @classmethod + def _add_width_height_args(cls, parser): parser.add_argument( "--width", default=None, help=( @@ -332,7 +333,7 @@ class InitialProcessor(CommonImageProcessor): description = "Initial processing" @classmethod - def media_is_eligibile(self, media_entry): + def media_is_eligibile(cls, media_entry): """ Determine if this media type is eligible for processing """ @@ -344,16 +345,17 @@ class InitialProcessor(CommonImageProcessor): ############################### @classmethod - def generate_parser(self): + def generate_parser(cls): parser = argparse.ArgumentParser( - description=self.description) + description=cls.description, + prog=cls.name) - self._add_width_height_args(parser) + cls._add_width_height_args(parser) return parser @classmethod - def args_to_request(self, args): + def args_to_request(cls, args): raise NotImplementedError diff --git a/mediagoblin/processing/__init__.py b/mediagoblin/processing/__init__.py index 95622b9d..9e77d2b2 100644 --- a/mediagoblin/processing/__init__.py +++ b/mediagoblin/processing/__init__.py @@ -126,7 +126,7 @@ class MediaProcessor(object): raise NotImplementedError @classmethod - def media_is_eligibile(self, media_entry): + def media_is_eligibile(cls, media_entry): raise NotImplementedError ############################### @@ -134,11 +134,11 @@ class MediaProcessor(object): ############################### @classmethod - def generate_parser(self): + def generate_parser(cls): raise NotImplementedError @classmethod - def parser_to_request(self, parser): + def parser_to_request(cls, parser): raise NotImplementedError ##########################################