This commit is contained in:
mathieui 2012-12-27 18:18:20 +01:00
parent 97c66b42c3
commit f2caca5f23

View file

@ -35,9 +35,10 @@ class Executor(threading.Thread):
WARNING: Be careful to properly escape what is untrusted by using WARNING: Be careful to properly escape what is untrusted by using
pipes.quote (or shlex.quote with python 3.3) for example. pipes.quote (or shlex.quote with python 3.3) for example.
""" """
def __init__(self, command): def __init__(self, command, remote=False):
threading.Thread.__init__(self) threading.Thread.__init__(self)
self.command = command self.command = command
self.remote = remote
# check for > or >> special case # check for > or >> special case
self.filename = None self.filename = None
self.redirection_mode = 'w' self.redirection_mode = 'w'
@ -57,7 +58,14 @@ class Executor(threading.Thread):
except (OSError, IOError) as e: except (OSError, IOError) as e:
log.error('Could not open redirection file: %s (%s)' % (self.filename, e,)) log.error('Could not open redirection file: %s (%s)' % (self.filename, e,))
return return
subprocess.call(self.command, stdout=stdout) try:
subprocess.call(self.command, stdout=stdout)
except:
import traceback
if self.remote:
print(traceback.format_exc())
else:
log.error('Could not execute %s:\n%s', self.command, traceback.format_exc())
def main(): def main():
while True: while True:
@ -65,7 +73,7 @@ def main():
if line == '': if line == '':
break break
command = shlex.split(line) command = shlex.split(line)
e = Executor(command) e = Executor(command, remote=True)
e.start() e.start()
if __name__ == '__main__': if __name__ == '__main__':