borgmatic/atticmatic/command.py

39 lines
1.1 KiB
Python

from __future__ import print_function
from argparse import ArgumentParser
from subprocess import CalledProcessError
import sys
from atticmatic.attic import create_archive, prune_archives
from atticmatic.config import parse_configuration
def main():
parser = ArgumentParser()
parser.add_argument(
'--config',
dest='config_filename',
default='/etc/atticmatic/config',
help='Configuration filename',
)
parser.add_argument(
'--excludes',
dest='excludes_filename',
default='/etc/atticmatic/excludes',
help='Excludes filename',
)
parser.add_argument(
'--verbose',
action='store_true',
help='Display verbose progress information',
)
args = parser.parse_args()
try:
location_config, retention_config = parse_configuration(args.config_filename)
create_archive(args.excludes_filename, args.verbose, *location_config)
prune_archives(location_config.repository, args.verbose, *retention_config)
except (ValueError, CalledProcessError), error:
print(error, file=sys.stderr)
sys.exit(1)