aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2013-08-09 13:56:23 -0500
committerRodney Ewing <ewing.rj@gmail.com>2013-08-16 15:30:15 -0700
commit55a10fef0ae97cb33c8393a7a25487c2666b4cf1 (patch)
tree90169c25ce2bfa91c33775682a3bced47ce214cf
parent85ead8ac3cf59aeee12ddd3b33ecfeb03c3aa946 (diff)
downloadmediagoblin-55a10fef0ae97cb33c8393a7a25487c2666b4cf1.tar.lz
mediagoblin-55a10fef0ae97cb33c8393a7a25487c2666b4cf1.tar.xz
mediagoblin-55a10fef0ae97cb33c8393a7a25487c2666b4cf1.zip
`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?
-rw-r--r--mediagoblin/gmg_commands/reprocess.py26
-rw-r--r--mediagoblin/media_types/image/processing.py14
-rw-r--r--mediagoblin/processing/__init__.py6
3 files changed, 31 insertions, 15 deletions
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
##########################################