2
0

borg.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. option('umask', required=False),
  21. ),
  22. ),
  23. shared.CONFIG_FORMAT[2], # retention
  24. Section_format(
  25. 'consistency',
  26. (
  27. option('checks', required=False),
  28. option('check_last', required=False),
  29. ),
  30. )
  31. )
  32. initialize = partial(shared.initialize, command=COMMAND)
  33. create_archive = partial(shared.create_archive, command=COMMAND)
  34. prune_archives = partial(shared.prune_archives, command=COMMAND)
  35. check_archives = partial(shared.check_archives, command=COMMAND)