add option to disable stdout/stderr redirection for shell provider

This commit is contained in:
bigeagle 2014-12-19 14:28:01 +08:00
parent 0b4c5b9cb9
commit caac9b4950
2 changed files with 10 additions and 3 deletions

View File

@ -81,6 +81,7 @@ class MirrorConfig(object):
local_dir=self.local_dir,
log_dir=self.log_dir,
log_file=self.log_file,
log_stdout=self.options.get("log_stdout", True),
interval=self.interval,
hooks=hooks
)

View File

@ -106,12 +106,13 @@ class RsyncProvider(MirrorProvider):
class ShellProvider(MirrorProvider):
def __init__(self, name, command, upstream_url, local_dir, log_dir,
log_file="/dev/null", interval=120, hooks=[]):
log_file="/dev/null", log_stdout=True, interval=120, hooks=[]):
super(ShellProvider, self).__init__(name, local_dir, log_dir, log_file,
interval, hooks)
self.upstream_url = str(upstream_url)
self.command = shlex.split(command)
self.log_stdout = log_stdout
def run(self, ctx={}):
@ -128,8 +129,13 @@ class ShellProvider(MirrorProvider):
_args = [] if len(self.command) == 1 else self.command[1:]
cmd = sh.Command(_cmd)
self.p = cmd(*_args, _env=new_env, _out=log_file,
_err=log_file, _out_bufsize=1, _bg=True)
if self.log_stdout:
self.p = cmd(*_args, _env=new_env, _out=log_file,
_err=log_file, _out_bufsize=1, _bg=True)
else:
self.p = cmd(*_args, _env=new_env, _out='/dev/null',
_err='/dev/null', _out_bufsize=1, _bg=True)
# vim: ts=4 sw=4 sts=4 expandtab