From e815c50f13b9f76ee164cfb469d144e9ef6ab119 Mon Sep 17 00:00:00 2001 From: Ash Berlin-Taylor Date: Fri, 17 Aug 2018 21:20:16 +0100 Subject: [PATCH] Make backup retention period configurable For instance `tmux set-option -g @resurrect-delete-backup-after 1` to only keep 1 day of backups. Closes 252. --- CHANGELOG.md | 2 ++ scripts/save.sh | 5 +++-- scripts/variables.sh | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1ac3cc..1564a46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,8 @@ e.g. `vim -S Session1.vim`. - Enable restoring command arguments for inline strategies with `*` character. - Kill session "0" if it wasn't restored. +- Add `@resurrect-delete-backup-after` option to specify how many days of + backups to keep - default is 30. ### v2.4.0, 2015-02-23 - add "tmux-test" diff --git a/scripts/save.sh b/scripts/save.sh index 9d80af7..d69914e 100755 --- a/scripts/save.sh +++ b/scripts/save.sh @@ -269,11 +269,12 @@ dump_shell_history() { } remove_old_backups() { - # remove resurrect files older than 30 days, but keep at least 5 copies of backup. + # remove resurrect files older than 30 days (default), but keep at least 5 copies of backup. + local delete_after="$(get_tmux_option "$delete_backup_after_option" "$default_delete_backup_after")" local -a files files=($(ls -t $(resurrect_dir)/${RESURRECT_FILE_PREFIX}_*.${RESURRECT_FILE_EXTENSION} | tail -n +6)) [[ ${#files[@]} -eq 0 ]] || - find "${files[@]}" -type f -mtime +30 -exec rm -v "{}" \; + find "${files[@]}" -type f -mtime "+${delete_after}" -exec rm -v "{}" \; } save_all() { diff --git a/scripts/variables.sh b/scripts/variables.sh index 3f94372..dce474e 100644 --- a/scripts/variables.sh +++ b/scripts/variables.sh @@ -46,3 +46,6 @@ overwrite_option="@resurrect-never-overwrite" # Hooks are set via ${hook_prefix}${name}, i.e. "@resurrect-hook-post-save-all" hook_prefix="@resurrect-hook-" + +delete_backup_after_option="@resurrect-delete-backup-after" +default_delete_backup_after="30" # days