diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bpkup.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/bpkup.py b/lib/bpkup.py new file mode 100644 index 00000000..03504bb3 --- /dev/null +++ b/lib/bpkup.py @@ -0,0 +1,44 @@ +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 |