53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
import logging
|
|
|
|
import borgmatic.borg.prune
|
|
import borgmatic.hooks.command
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def run_prune(
|
|
config_filename,
|
|
repository,
|
|
storage,
|
|
retention,
|
|
hooks,
|
|
hook_context,
|
|
local_borg_version,
|
|
prune_arguments,
|
|
global_arguments,
|
|
dry_run_label,
|
|
local_path,
|
|
remote_path,
|
|
):
|
|
'''
|
|
Run the "prune" action for the given repository.
|
|
'''
|
|
borgmatic.hooks.command.execute_hook(
|
|
hooks.get('before_prune'),
|
|
hooks.get('umask'),
|
|
config_filename,
|
|
'pre-prune',
|
|
global_arguments.dry_run,
|
|
**hook_context,
|
|
)
|
|
logger.info('{}: Pruning archives{}'.format(repository, dry_run_label))
|
|
borgmatic.borg.prune.prune_archives(
|
|
global_arguments.dry_run,
|
|
repository,
|
|
storage,
|
|
retention,
|
|
local_borg_version,
|
|
local_path=local_path,
|
|
remote_path=remote_path,
|
|
stats=prune_arguments.stats,
|
|
list_archives=prune_arguments.list_archives,
|
|
)
|
|
borgmatic.hooks.command.execute_hook(
|
|
hooks.get('after_prune'),
|
|
hooks.get('umask'),
|
|
config_filename,
|
|
'post-prune',
|
|
global_arguments.dry_run,
|
|
**hook_context,
|
|
)
|