import subprocess, os class KupError(Exception): pass class ExecutionError(KupError): def __init__(self, errcode): self.error_code = errcode def _check(process): if process.returncode != 0: raise ExecutionError(process.returncode) def mkdir(path): cmd = ['kup', 'mkdir', path] process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True, universal_newlines=True) stdout = process.communicate()[0] process.wait() _check(process) return stdout def ls(path=None): cmd = ['kup', 'ls', path] process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True, universal_newlines=True) stdout = process.communicate()[0] process.wait() _check(process) return stdout def put(tar_bz2, signed_tar, path): cmd = ['kup', 'put', tar_bz2, signed_tar, path] process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True, universal_newlines=True) stdout = process.communicate()[0] process.wait() _check(process) return stdout