diff --git a/scripts/restore b/scripts/restore new file mode 100644 index 0000000..c26e989 --- /dev/null +++ b/scripts/restore @@ -0,0 +1,58 @@ +#!/bin/bash + +# Exit on command errors and treat unset variables as an error +set -eu + +# Get multi-instances specific variables +app=$YNH_APP_INSTANCE_NAME + +# Set app specific variables +dbname=$app +dbuser=$app + +# Source app helpers +. /usr/share/yunohost/helpers + +# Retrieve old app settings +domain=$(ynh_app_setting_get "$app" domain) +path=$(ynh_app_setting_get "$app" path) +dbpass=$(ynh_app_setting_get "$app" mysqlpwd) + +# Check domain/path availability +sudo yunohost app checkurl "${domain}${path}" -a "$app" \ + || exit 1 + +# Check destination directory +DESTDIR="/var/www/$app" +[[ -d $DESTDIR ]] && ynh_die \ +"The destination directory '$DESTDIR' already exists.\ + You should safely delete it before restoring this app." + +# Check configuration files +nginx_conf="/etc/nginx/conf.d/${domain}.d/${app}.conf" +[[ -f $nginx_conf ]] && ynh_die \ +"The NGINX configuration already exists at '${nginx_conf}'. + You should safely delete it before restoring this app." +phpfpm_conf="/etc/php5/fpm/pool.d/${app}.conf" +[[ -f $phpfpm_conf ]] && ynh_die \ +"The PHP FPM configuration already exists at '${phpfpm_conf}'. + You should safely delete it before restoring this app." + +# Restore the app files +sudo cp -a ./sources "$DESTDIR" + +# Create and restore the database +ynh_mysql_create_db $dbname $dbuser $dbpass +ynh_mysql_connect_as $dbuser $dbpass $dbname < ./dump.sql + +# Fix installation directories and permissions +sudo mkdir -p "${DESTDIR}/logs" "${DESTDIR}/temp" +sudo chown -R www-data: "$DESTDIR" + +# Restore configuration files +sudo cp -a ./nginx.conf "$nginx_conf" +sudo cp -a ./php-fpm.conf "$phpfpm_conf" + +# Reload services +sudo service php5-fpm restart || true +sudo service nginx reload || true