From caac9b495083be23f453782e33c581fbb8f1c4d8 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Fri, 19 Dec 2014 14:28:01 +0800 Subject: [PATCH] add option to disable stdout/stderr redirection for shell provider --- tunasync/mirror_config.py | 1 + tunasync/mirror_provider.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tunasync/mirror_config.py b/tunasync/mirror_config.py index d294c04..df2c365 100644 --- a/tunasync/mirror_config.py +++ b/tunasync/mirror_config.py @@ -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 ) diff --git a/tunasync/mirror_provider.py b/tunasync/mirror_provider.py index 2291ed5..78a3ec4 100644 --- a/tunasync/mirror_provider.py +++ b/tunasync/mirror_provider.py @@ -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