69 self.finished = True |
69 self.finished = True |
70 self.endcallback(self.Proc.pid, err) |
70 self.endcallback(self.Proc.pid, err) |
71 |
71 |
72 |
72 |
73 class ProcessLogger: |
73 class ProcessLogger: |
74 def __init__(self, logger, Command, finish_callback = None, |
74 def __init__(self, logger, Command, finish_callback=None, |
75 no_stdout = False, no_stderr = False, no_gui = True, |
75 no_stdout=False, no_stderr=False, no_gui=True, |
76 timeout = None, outlimit = None, errlimit = None, |
76 timeout=None, outlimit=None, errlimit=None, |
77 endlog = None, keyword = None, kill_it = False, cwd = None, |
77 endlog=None, keyword=None, kill_it=False, cwd=None, |
78 encoding = None): |
78 encoding=None): |
79 self.logger = logger |
79 self.logger = logger |
80 if not isinstance(Command, list): |
80 if not isinstance(Command, list): |
81 self.Command_str = Command |
81 self.Command_str = Command |
82 self.Command = [] |
82 self.Command = [] |
83 for i, word in enumerate(Command.replace("'", '"').split('"')): |
83 for i, word in enumerate(Command.replace("'", '"').split('"')): |
167 if self.errlimit and self.errlen > self.errlimit: |
167 if self.errlimit and self.errlen > self.errlimit: |
168 self.endlog() |
168 self.endlog() |
169 |
169 |
170 def log_the_end(self, ecode, pid): |
170 def log_the_end(self, ecode, pid): |
171 self.logger.write(self.Command_str + "\n") |
171 self.logger.write(self.Command_str + "\n") |
172 self.logger.write_warning(_("exited with status {a1} (pid {a2})\n").format(a1 = str(ecode), a2 = str(pid))) |
172 self.logger.write_warning(_("exited with status {a1} (pid {a2})\n").format(a1=str(ecode), a2=str(pid))) |
173 |
173 |
174 def finish(self, pid, ecode): |
174 def finish(self, pid, ecode): |
175 # avoid running function before start is finished |
175 # avoid running function before start is finished |
176 self.startsem.acquire() |
176 self.startsem.acquire() |
177 if self.timeout: |
177 if self.timeout: |