diff --git a/gallery_dl/postprocessor/common.py b/gallery_dl/postprocessor/common.py index 2344611c..2873703e 100644 --- a/gallery_dl/postprocessor/common.py +++ b/gallery_dl/postprocessor/common.py @@ -8,8 +8,11 @@ """Common classes and constants used by postprocessor modules.""" +from . import log + class PostProcessor(): + log = log - def run(self, asd): + def run(self, pathfmt): raise NotImplementedError() diff --git a/gallery_dl/postprocessor/exec.py b/gallery_dl/postprocessor/exec.py index dcec5c03..a5a9f7bd 100644 --- a/gallery_dl/postprocessor/exec.py +++ b/gallery_dl/postprocessor/exec.py @@ -16,14 +16,22 @@ class ExecPP(PostProcessor): def __init__(self, options): PostProcessor.__init__(self) - self.args = options["args"] + self.args = options["command"] + if options.get("async", False): + self._exec = subprocess.Popen def run(self, pathfmt): - args = [ + self._exec([ arg.format_map(pathfmt.keywords) for arg in self.args - ] - subprocess.Popen(args) + ]) + + def _exec(self, args): + retcode = subprocess.Popen(args).wait() + if retcode: + self.log.warning( + "executing '%s' returned non-zero exit status %d", + " ".join(args), retcode) __postprocessor__ = ExecPP