command.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from __future__ import print_function
  2. from argparse import ArgumentParser
  3. from subprocess import CalledProcessError
  4. import sys
  5. from atticmatic.attic import create_archive, prune_archives
  6. from atticmatic.config import parse_configuration
  7. def main():
  8. parser = ArgumentParser()
  9. parser.add_argument(
  10. '--config',
  11. dest='config_filename',
  12. default='/etc/atticmatic/config',
  13. help='Configuration filename',
  14. )
  15. parser.add_argument(
  16. '--excludes',
  17. dest='excludes_filename',
  18. default='/etc/atticmatic/excludes',
  19. help='Excludes filename',
  20. )
  21. parser.add_argument(
  22. '--verbose',
  23. action='store_true',
  24. help='Display verbose progress information',
  25. )
  26. args = parser.parse_args()
  27. try:
  28. location_config, retention_config = parse_configuration(args.config_filename)
  29. create_archive(args.excludes_filename, args.verbose, *location_config)
  30. prune_archives(location_config.repository, args.verbose, *retention_config)
  31. except (ValueError, CalledProcessError), error:
  32. print(error, file=sys.stderr)
  33. sys.exit(1)