borg.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from functools import partial
  2. from atticmatic.config import Section_format, option
  3. from atticmatic.backends import shared
  4. # An atticmatic backend that supports Borg for actually handling backups.
  5. COMMAND = 'borg'
  6. CONFIG_FORMAT = (
  7. Section_format(
  8. 'location',
  9. (
  10. option('source_directories'),
  11. option('one_file_system', value_type=bool, required=False),
  12. option('repository'),
  13. ),
  14. ),
  15. Section_format(
  16. 'storage',
  17. (
  18. option('encryption_passphrase', required=False),
  19. option('compression', required=False),
  20. ),
  21. ),
  22. shared.CONFIG_FORMAT[2], # retention
  23. Section_format(
  24. 'consistency',
  25. (
  26. option('checks', required=False),
  27. option('check_last', required=False),
  28. ),
  29. )
  30. )
  31. initialize = partial(shared.initialize, command=COMMAND)
  32. create_archive = partial(shared.create_archive, command=COMMAND)
  33. prune_archives = partial(shared.prune_archives, command=COMMAND)
  34. check_archives = partial(shared.check_archives, command=COMMAND)