exit(0)
class util:
+ @staticmethod
+ def clear_tmpdir(path=None):
+ """
+ Ensure the given directory (or TASK_TMPDIR if none given)
+ exists and is empty.
+ """
+ if path == None:
+ path = current_task().tmpdir
+ if os.path.exists(path):
+ p = subprocess.Popen(['rm', '-rf', path])
+ stdout, stderr = p.communicate(None)
+ if p.returncode != 0:
+ raise Exception('rm -rf %s: %s' % (path, stderr))
+ os.mkdir(path)
+
@staticmethod
def run_command(execargs, **kwargs):
kwargs.setdefault('stdin', subprocess.PIPE)
kwargs.setdefault('stdout', subprocess.PIPE)
- kwargs.setdefault('stderr', subprocess.PIPE)
+ kwargs.setdefault('stderr', sys.stderr)
kwargs.setdefault('close_fds', True)
kwargs.setdefault('shell', False)
p = subprocess.Popen(execargs, **kwargs)
self.start_new_stream(stream_name)
todo = []
if max_manifest_depth == 0:
- dirents = util.listdir_recursive(path)
+ dirents = sorted(util.listdir_recursive(path))
else:
dirents = sorted(os.listdir(path))
for dirent in dirents:
map(lambda x: self.write_directory_tree(*x), todo)
def write(self, newdata):
+ if hasattr(newdata, '__iter__'):
+ for s in newdata:
+ self.write(s)
+ return
self._data_buffer += [newdata]
self._data_buffer_len += len(newdata)
self._current_stream_length += len(newdata)