2
0

rename.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import logging
  2. import borgmatic.borg.flags
  3. logger = logging.getLogger(__name__)
  4. def make_rename_command(
  5. dry_run,
  6. repository_name,
  7. old_archive_name,
  8. new_archive_name,
  9. config,
  10. local_borg_version,
  11. local_path,
  12. remote_path,
  13. ):
  14. return (
  15. (local_path, 'rename')
  16. + (('--info',) if logger.getEffectiveLevel() == logging.INFO else ())
  17. + (('--debug', '--show-rc') if logger.isEnabledFor(logging.DEBUG) else ())
  18. + borgmatic.borg.flags.make_flags('dry-run', dry_run)
  19. + borgmatic.borg.flags.make_flags('remote-path', remote_path)
  20. + borgmatic.borg.flags.make_flags('umask', config.get('umask'))
  21. + borgmatic.borg.flags.make_flags('log-json', config.get('log_json'))
  22. + borgmatic.borg.flags.make_flags('lock-wait', config.get('lock_wait'))
  23. + borgmatic.borg.flags.make_repository_archive_flags(
  24. repository_name, old_archive_name, local_borg_version
  25. )
  26. + (new_archive_name,)
  27. )
  28. def rename_archive(
  29. repository_name,
  30. old_archive_name,
  31. new_archive_name,
  32. dry_run,
  33. config,
  34. local_borg_version,
  35. local_path,
  36. remote_path,
  37. ):
  38. command = make_rename_command(
  39. dry_run,
  40. repository_name,
  41. old_archive_name,
  42. new_archive_name,
  43. config,
  44. local_borg_version,
  45. local_path,
  46. remote_path,
  47. )
  48. borgmatic.execute.execute_command(
  49. command,
  50. output_log_level=logging.INFO,
  51. environment=borgmatic.borg.environment.make_environment(config),
  52. working_directory=borgmatic.config.paths.get_working_directory(config),
  53. borg_local_path=local_path,
  54. borg_exit_codes=config.get('borg_exit_codes'),
  55. )