39 lines
1.1 KiB
Python
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)
|