diff --git a/roles/ynh_backup/templates/ynh_backup.sh.j2 b/roles/ynh_backup/templates/ynh_backup.sh.j2 index a4a7d40a26c9e1362bec82c8cf84624588e7b90a..8dff693b5ad33ffd96b94dd866862d3a31c1b0ff 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