From e568d3530d3dc01698a8e5bb29284948c252904d Mon Sep 17 00:00:00 2001 From: Arthur BOUDREAULT <arthur@lydra.fr> Date: Fri, 22 Jul 2022 12:13:12 +0200 Subject: [PATCH] feat: add purge system for local YunoHost backups --- roles/ynh_backup/templates/ynh_backup.sh.j2 | 27 +++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/roles/ynh_backup/templates/ynh_backup.sh.j2 b/roles/ynh_backup/templates/ynh_backup.sh.j2 index a4a7d40..8dff693 100644 --- a/roles/ynh_backup/templates/ynh_backup.sh.j2 +++ b/roles/ynh_backup/templates/ynh_backup.sh.j2 @@ -1,8 +1,25 @@ #!/bin/sh -yunohost backup create {% if ynh_backup.system %}--system{% endif %}{% if ynh_backup.apps %} --apps{% endif %}{% if ynh_backup.directory %} --output-directory {{ ynh_backup.directory }}/backup_$(date +%Y%m%d_%H%M) {% endif %} +today=$(date +%Y%m%d_%H%M) +old_backup=$(yunohost backup list --output-as plain | grep "$(date --date="2 days ago" +"%Y%m%d")") -{% if ynh_backup.system is false and ynh_backup.apps is false %} - echo "Read the readme to know more about vars ynh_backup.system and ynh_backup.apps" - exit 1 -{% endif %} +_check_old_backup() { + if [ -n "$old_backup" ]; then + for i in $old_backup; do + echo "Backup $i is 2 days old or more. Purging it now." + yunohost backup delete "$i" + echo "Purging of old backup is now complete." + done + else + echo "There is no old backup to be purged." + fi +} + +_create_ynh_backup() { + echo "Backing up $today YunoHost data now." + yunohost backup create {% if ynh_backup.system %}--system{% endif %}{% if ynh_backup.apps %} --apps{% endif %}{% if ynh_backup.directory %} --output-directory {{ ynh_backup.directory }}/backup_"$today" {% endif %} + +} + +_check_old_backup +_create_ynh_backup -- GitLab