[enh] Allow to disable the backup during the upgrade

This commit is contained in:
Maniack Crudelis 2018-02-04 19:21:24 +01:00 committed by GitHub
parent 61a60d0f5c
commit ebdc67e02f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -37,16 +37,22 @@ ynh_get_plain_key() {
ynh_restore_upgradebackup () { ynh_restore_upgradebackup () {
echo "Upgrade failed." >&2 echo "Upgrade failed." >&2
local app_bck=${app//_/-} # Replace all '_' by '-' local app_bck=${app//_/-} # Replace all '_' by '-'
NO_BACKUP_UPGRADE=${NO_BACKUP_UPGRADE:-0}
# Check if an existing backup can be found before removing and restoring the application. if [ "$NO_BACKUP_UPGRADE" -eq 0 ]
if sudo yunohost backup list | grep -q $app_bck-pre-upgrade$backup_number then
then # Check if an existing backup can be found before removing and restoring the application.
# Remove the application then restore it if sudo yunohost backup list | grep -q $app_bck-pre-upgrade$backup_number
sudo yunohost app remove $app then
# Restore the backup # Remove the application then restore it
sudo yunohost backup restore --ignore-system $app_bck-pre-upgrade$backup_number --apps $app --force sudo yunohost app remove $app
ynh_die "The app was restored to the way it was before the failed upgrade." # Restore the backup
fi sudo yunohost backup restore --ignore-system $app_bck-pre-upgrade$backup_number --apps $app --force
ynh_die "The app was restored to the way it was before the failed upgrade."
fi
else
echo "\$NO_BACKUP_UPGRADE is set, that means there's no backup to restore. You have to fix this upgrade by yourself !" >&2
fi
} }
# Make a backup in case of failed upgrade # Make a backup in case of failed upgrade
@ -67,28 +73,34 @@ ynh_backup_before_upgrade () {
backup_number=1 backup_number=1
local old_backup_number=2 local old_backup_number=2
local app_bck=${app//_/-} # Replace all '_' by '-' local app_bck=${app//_/-} # Replace all '_' by '-'
NO_BACKUP_UPGRADE=${NO_BACKUP_UPGRADE:-0}
# Check if a backup already exists with the prefix 1 if [ "$NO_BACKUP_UPGRADE" -eq 0 ]
if sudo yunohost backup list | grep -q $app_bck-pre-upgrade1 then
then # Check if a backup already exists with the prefix 1
# Prefix becomes 2 to preserve the previous backup if sudo yunohost backup list | grep -q $app_bck-pre-upgrade1
backup_number=2
old_backup_number=1
fi
# Create backup
sudo yunohost backup create --ignore-system --apps $app --name $app_bck-pre-upgrade$backup_number
if [ "$?" -eq 0 ]
then
# If the backup succeeded, remove the previous backup
if sudo yunohost backup list | grep -q $app_bck-pre-upgrade$old_backup_number
then then
# Remove the previous backup only if it exists # Prefix becomes 2 to preserve the previous backup
sudo yunohost backup delete $app_bck-pre-upgrade$old_backup_number > /dev/null backup_number=2
old_backup_number=1
fi fi
else
ynh_die "Backup failed, the upgrade process was aborted." # Create backup
fi sudo yunohost backup create --ignore-system --apps $app --name $app_bck-pre-upgrade$backup_number
if [ "$?" -eq 0 ]
then
# If the backup succeeded, remove the previous backup
if sudo yunohost backup list | grep -q $app_bck-pre-upgrade$old_backup_number
then
# Remove the previous backup only if it exists
sudo yunohost backup delete $app_bck-pre-upgrade$old_backup_number > /dev/null
fi
else
ynh_die "Backup failed, the upgrade process was aborted."
fi
else
echo "\$NO_BACKUP_UPGRADE is set, backup will be avoided. Be careful, this upgrade is going to be operated without securi$
fi
} }
# Download, check integrity, uncompress and patch the source from app.src # Download, check integrity, uncompress and patch the source from app.src