Source code for dktasklib.runners

# -*- coding: utf-8 -*-
import subprocess


[docs]class Result(str): cmd = None returncode = None
[docs]def run(cmdline, throw=False): try: res = Result( subprocess.check_output( cmdline, shell=True ) # .decode('u8') ## (can't decode since Result is a str) ) res.cmd = cmdline return res except subprocess.CalledProcessError as e: if throw: raise res = Result(e.output) res.cmd = cmdline res.returncode = e.returncode return res
[docs]def command(executable, dryrun=False): def _call(*args, **kwargs): cmdline = " ".join(args) for k, v in kwargs.items(): if v is True: cmdline += " --" + k else: if ' ' in v: v = '"%s"' % v cmdline += ' --%s=%s' % (k, v) if dryrun: print cmdline else: return run(cmdline) return _call