diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-04-19 20:00:01 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-04-19 20:00:01 +0100 |
commit | 15b1523142c031a0fe46ae0c06adc97ba8be2265 (patch) | |
tree | 711f5b52205f74284d20fcbd40dbac6672cda44d /seivot | |
parent | 2dbd68ab29466abae17422bb55a436fbe75da8f9 (diff) | |
download | seivot-15b1523142c031a0fe46ae0c06adc97ba8be2265.tar.gz |
Implement list_files for obnam.
Diffstat (limited to 'seivot')
-rwxr-xr-x | seivot | 23 |
1 files changed, 18 insertions, 5 deletions
@@ -25,7 +25,11 @@ import time def runcmd(argv, **kwargs): logging.debug('run: %s %s' % (argv, kwargs)) - subprocess.check_call(argv, **kwargs) + p = subprocess.Popen(argv, **kwargs) + out, err = p.communicate() + if p.returncode != 0: + raise Exception('command failed: %s\n%s' % (argv, err)) + return out class BackupProgram(object): @@ -81,10 +85,10 @@ class Obnam(BackupProgram): def _branch(self): return self.settings['obnam-branch'] or None - def _run(self, args): - runcmd([self._cmd, '--log', '/dev/null', - '--repository', self.repo] + args, - cwd=self._branch) + def _run(self, args, **kwargs): + return runcmd([self._cmd, '--log', '/dev/null', + '--repository', self.repo] + args, + cwd=self._branch, **kwargs) def prepare(self): if self._branch: @@ -93,6 +97,15 @@ class Obnam(BackupProgram): def backup(self): self._run(['backup', self.live_data]) + + def _genid(self, gen): + out = self._run(['genids'], stdout=subprocess.PIPE) + return out.splitlines()[gen] + + def list_files(self, gen): + devnull = os.open('/dev/null', os.O_WRONLY) + self._run(['ls', self._genid(gen)], stdout=devnull) + os.close(devnull) class BackupProgramFactory(object): |