#!/bin/bash # We retrieve app parameters app=$YNH_APP_INSTANCE_NAME # Backup the current version of the app, restore it if the upgrade fails if sudo yunohost backup list | grep -q ${app}-before-upgrade > /dev/null 2>&1; then # Supprime l'ancienne archive seulement si elle existe sudo yunohost backup delete ${app}-before-upgrade fi sudo yunohost backup create --ignore-hooks --apps $app --name ${app}-before-upgrade EXIT_PROPERLY () { exit_code=$? if [ "$exit_code" -eq 0 ]; then exit 0 # Quitte sans erreur si le script se termine correctement. fi trap '' EXIT set +eu sudo yunohost app remove $app # Supprime l'application avant de la restaurer. sudo yunohost backup restore --ignore-hooks ${app}-before-upgrade --apps $app --force # Restore the backup if upgrade failed ynh_die "Upgrade failed. The app was restored to the way it was before the failed upgrade." } set -eu trap EXIT_PROPERLY EXIT # Source app helpers source /usr/share/yunohost/helpers # We check variables are not empty CHECK_VAR () { # Vérifie que la variable n'est pas vide. # $1 = Variable à vérifier # $2 = Texte à afficher en cas d'erreur test -n "$1" || (echo "$2" >&2 && false) } CHECK_VAR "$app" "app name not set" path=$(ynh_app_setting_get $app path) domain=$(ynh_app_setting_get $app domain) final_path=$(ynh_app_setting_get $app final_path) finalnginxconf=$(ynh_app_setting_get $app finalnginxconf) finalphpconf=$(ynh_app_setting_get $app finalphpconf) # Removal of old folder and restart from fresh sudo rm -rf $final_path sudo mkdir -p $final_path # We download the sources and check the md5sum SHA1=`sudo cat ../sources/source_sha1`; sed -i "s@SHA1TOCHANGE@$SHA1@g" ../sources/source_url sed -i "s@SHA1TOCHANGE@$SHA1@g" ../sources/source_md5 sudo wget -nv -i ../sources/source_url -O framagames-${SHA1}.zip sudo md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" >&2 && false) sudo unzip framagames-${SHA1}.zip -d ../sources/ sudo cp -R ../sources/framagames-${SHA1}/* $final_path # Set permissions sudo chmod 775 -R $final_path sudo chown -hR www-data:www-data $final_path # Modify Nginx configuration file and copy it to Nginx conf.d directory sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf sed -i "s@NAMETOCHANGE@$app@g" ../conf/nginx.conf sudo cp ../conf/nginx.conf $finalnginxconf # Modify php-fpm configuration file and copy it to php-fpm pool.d directory sed -i "s@NAMETOCHANGE@$app@g" ../conf/php-fpm.conf sed -i "s@FOLDERTOCHANGE@$final_path@g" ../conf/php-fpm.conf sudo cp ../conf/php-fpm.conf $finalphpconf sudo chown root: $finalphpconf sudo chmod 644 $finalphpconf # Make app public if necessary is_public=$(ynh_app_setting_get $app is_public) if [ "$is_public" = "Yes" ]; then ynh_app_setting_set $app skipped_uris "/" else ynh_app_setting_set $app protected_uris "/" fi # Reload Nginx and regenerate SSOwat conf sudo service php5-fpm reload sudo service nginx reload sudo yunohost app ssowatconf