diff --git a/manifest.json b/manifest.json index cd9cd98..d20b094 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "name": "LimeSurvey", "id": "limesurvey", "packaging_format": 1, - "version": "3.5.0-1", + "version": "3.5.0-4", "description": { "en": "LimeSurvey is used to create advanced poll.", "fr": "LimeSurvey est un outil de création et diffusion de sondage en ligne." diff --git a/scripts/_common.sh b/scripts/_common.sh index 777f08f..2ec6a78 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -88,45 +88,52 @@ ynh_exec_as() { } -# TODO support SOURCE_ID +# usage: ynh_save_persistent MODE RELATIVE_PATH ynh_save_persistent () { local TYPE=$1 - local DIR=/tmp/ynh-persistent/$TYPE/$app/app - mkdir -p $DIR - touch $DIR/dir_names - shift - i=1 - for PERSISTENT_DIR in $@; - do - if [ -e $final_path/$PERSISTENT_DIR ]; then - mv $final_path/$PERSISTENT_DIR $DIR/$i - echo -n '$PERSISTENT_DIR ' >> $DIR/dir_names - ((i++)) - fi - done + local DIR=/tmp/ynh-persistent/$app + set +u + i=${#YNH_PERSISTENT_DIR[@]} + i=${i:-0} + set -u + [ "$i" -eq "0" ] && ynh_secure_remove $DIR && mkdir -p $DIR + if [ -e $final_path/$2 ]; then + mv $final_path/$2 $DIR/$i + YNH_PERSISTENT_MODE[$i]=$1 + YNH_PERSISTENT_DIR[$i]=$2 + fi } -# TODO support SOURCE_ID +ynh_keep_if_no_upgrade () { + for elt in $@; + do + ynh_save_persistent KEEP_IF_NO_UPGRADE $elt + done +} +ynh_keep () { + for elt in $@; + do + ynh_save_persistent KEEP $elt + done +} +# usage: ynh_restore_persistent ynh_restore_persistent () { - local TYPE=$1 - local DIR=/tmp/ynh-persistent/$TYPE/$app/app - shift - if [ -d $DIR ]; then - i=1 - for PERSISTENT_DIR in $(cat $DIR/dir_names); + local DIR=/tmp/ynh-persistent/$app + if [ -d $DIR ]; then + i=0 + for PERSISTENT_DIR in "${YNH_PERSISTENT_DIR[@]}"; do - if [ "$TYPE" = "modules" ]; then - for updated_subdir in $(ls $final_path/$PERSISTENT_DIR); - do - ynh_secure_remove $DIR/$i/$updated_subdir - done - fi - if [ -d $DIR/$i ]; then - mv $DIR/$i/* $final_path/$PERSISTENT_DIR/ 2> /dev/null || true + if [ "${YNH_PERSISTENT_MODE[$i]}" = "KEEP_IF_NO_UPGRADE" ]; then + if [ ! -e $final_path/$PERSISTENT_DIR ]; then + mv $DIR/$i $final_path/$PERSISTENT_DIR + fi else - mv $DIR/$i $final_path/$PERSISTENT_DIR 2> /dev/null || true + if [ -e $final_path/$PERSISTENT_DIR ]; then + ynh_secure_remove $final_path/$PERSISTENT_DIR + fi + mv $DIR/$i $final_path/$PERSISTENT_DIR fi - ((i++)) + ((i+=1)) done ynh_secure_remove $DIR fi diff --git a/scripts/upgrade b/scripts/upgrade index f41c2d1..f36fbfd 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -57,7 +57,6 @@ if ynh_version_le "2.0.5" ; then prefix=${prefix:-prefix_} db_name=${db_name:-$app} final_path=$(ynh_app_setting_get $app local_path) - ynh_save_args path_url is_public prefix db_name final_path db_user ynh_install_app_dependencies $pkg_dependencies # Move the upload dir to final_path if needed @@ -74,9 +73,18 @@ if ynh_version_le "2.0.5" ; then ynh_configure migrations/2.0.5.sql ./2.0.5.sql mysql -u $app -p$db_pwd $db_name < ./2.0.5.sql fi +if ynh_version_le "2.62.2-1" ; then + is_public=${is_public:-0} + prefix=${prefix:-prefix_} + db_name=${db_name:-$app} + final_path=$(ynh_app_setting_get $app local_path) + ynh_save_args path_url is_public prefix db_name final_path db_user +fi if ynh_version_le "2.62.2-2" ; then - # Move old templates in backup dir - mv $final_path/upload/templates /home/yunohost.backup/$app-old-templates + # Move old templates and themes in backup dir + mv $final_path/upload/templates /home/yunohost.backup/$app.bkp/old-templates + mkdir -p /home/yunohost.backup/$app.bkp/old-themes + mv $final_path/themes/* /home/yunohost.backup/$app.bkp/old-themes/ fi #================================================= @@ -86,16 +94,15 @@ fi #================================================= # Backup config, plugins and themes and delete previous files -ynh_save_persistent modules themes plugins -ynh_save_persistent data application/config/config.php upload +ynh_keep_if_no_upgrade themes/admin/* themes/question/* themes/survey/* plugins/* +ynh_keep application/config/config.php upload # Copie new files and restore config, plugins, upload and themes ynh_secure_remove $final_path ynh_setup_source "$final_path" # Télécharge la source, décompresse et copie dans $final_path # Restore config, plugins and themes -ynh_restore_persistent modules -ynh_restore_persistent data +ynh_restore_persistent #================================================= # NGINX CONFIGURATION @@ -126,7 +133,7 @@ set_permissions # Migrate DB cd $final_path/application/commands -ynh_exec_as "$app" php console.php update +ynh_exec_as "$app" php console.php updatedb #================================================= # RELOAD NGINX