From 4cc19180a559aa2b2645586d015b3e9e892b93af Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 3 Jan 2019 11:48:16 +0100 Subject: Initial commit. Support for a local target only. --- example.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 example.py (limited to 'example.py') diff --git a/example.py b/example.py new file mode 100755 index 0000000..6fa6c0d --- /dev/null +++ b/example.py @@ -0,0 +1,54 @@ +#!/usr/bin/python3 + +import argparse +import sys + +from bupper.repository import Repo +from bupper.targets import TargetLocal + +# define the backup targets +tgts = ( + #TargetLocal('local', dirs = ['/usr/local/share']), +) + +def list_targets(tgts): + for tgt in tgts: + sys.stdout.write('%s\n' % tgt.name) + +# parse the commandline +parser = argparse.ArgumentParser() +parser.add_argument('-l', '--list-targets', action = 'store_true') +parser.add_argument('targets', nargs = argparse.REMAINDER) +args = parser.parse_args() + +if args.list_targets: + list_targets(tgts) + sys.exit(0) + +if len(args.targets) > 0: + tgts_run = [] + for requested in args.targets: + try: + tgts_run.append(next(filter(lambda tgt: tgt.name == requested, tgts))) + except StopIteration: + sys.stderr.write('Requested target "%s" not defined\n' % requested); + sys.exit(1) +else: + tgts_run = tgts + +repo = Repo() +res = repo.backup(tgts_run) +if not res.all_ok: + sys.stderr.write('Error while backing up:\n') + for tgt, tgt_res in zip(tgts, res.target_results): + if tgt_res.retcode == 0: + continue + + sys.stderr.write('Backing up target "%s" failed with code %d, bup output:\n' % + (tgt.name, tgt_res.retcode)) + sys.stderr.write(tgt_res.output.decode('utf-8', errors = 'backslashreplace') + '\n') + + if res.par2_result.retcode != 0: + sys.stderr.write('Generating par2 recovery information failed with code %d, bup output:\n' % + (res.par2_result.retcode)) + sys.stderr.write(res.par2_result.output.decode('utf-8', errors = 'backslashreplace') + '\n') -- cgit v1.2.3