2015-05-31 13:46:25 +02:00
#!/bin/bash
2018-03-13 21:49:11 +01:00
#=================================================
2021-07-12 12:16:32 +02:00
# GENERIC START
2018-03-13 21:49:11 +01:00
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
2017-02-06 23:40:55 +01:00
source _common.sh
2021-07-12 12:16:32 +02:00
source /usr/share/yunohost/helpers
2015-05-31 13:46:25 +02:00
2018-03-13 21:49:11 +01:00
#=================================================
# LOAD SETTINGS
#=================================================
2021-07-12 12:11:43 +02:00
ynh_script_progression --message="Loading installation settings..." --weight=1
2017-02-06 23:40:55 +01:00
2021-07-12 12:11:43 +02:00
app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain)
path_url=$(ynh_app_setting_get --app=$app --key=path)
admin=$(ynh_app_setting_get --app=$app --key=admin)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
prefix=$(ynh_app_setting_get $app prefix)
2018-03-13 21:49:11 +01:00
#=================================================
# CHECK VERSION
#=================================================
2021-07-12 12:11:43 +02:00
upgrade_type=$(ynh_check_app_version_changed)
2018-03-13 21:49:11 +01:00
#=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#=================================================
2021-07-12 12:11:43 +02:00
ynh_script_progression --message="Backing up $app before upgrading (may take a while)..." --weight=7
2018-03-13 21:49:11 +01:00
# Backup the current version of the app
ynh_backup_before_upgrade
ynh_clean_setup () {
2021-07-12 12:11:43 +02:00
# restore it if the upgrade fails
ynh_restore_upgradebackup
2018-03-13 21:49:11 +01:00
}
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#=================================================
2021-07-12 12:11:43 +02:00
# ENSURE DOWNWARD COMPATIBILITY
2018-03-13 21:49:11 +01:00
#=================================================
2021-07-12 12:16:32 +02:00
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
2021-07-12 12:11:43 +02:00
#
# N.B. : the followings setting migrations snippets are provided as *EXAMPLES*
# of what you may want to do in some cases (e.g. a setting was not defined on
# some legacy installs and you therefore want to initiaze stuff during upgrade)
#
# If db_name doesn't exist, create it
#if [ -z "$db_name" ]; then
# db_name=$(ynh_sanitize_dbid --db_name=$app)
# ynh_app_setting_set --app=$app --key=db_name --value=$db_name
#fi
# If final_path doesn't exist, create it
#if [ -z "$final_path" ]; then
# final_path=/var/www/$app
# ynh_app_setting_set --app=$app --key=final_path --value=$final_path
#fi
### If nobody installed your app before 4.1,
### then you may safely remove these lines
# Cleaning legacy permissions
if ynh_legacy_permissions_exists; then
ynh_legacy_permissions_delete_all
2018-03-13 21:49:11 +01:00
2021-07-12 12:11:43 +02:00
ynh_app_setting_delete --app=$app --key=is_public
fi
if ! ynh_permission_exists --permission="admin"; then
# Create the required permissions
ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin
fi
# Create a permission if needed
if ! ynh_permission_exists --permission="api"; then
ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true"
fi
2018-03-13 21:49:11 +01:00
2021-07-12 12:39:21 +02:00
#=================================================
# CREATE DEDICATED USER
#=================================================
ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1
# Create a dedicated user (if not existing)
ynh_system_user_create --username=$app --home_dir="$final_path"
2018-03-13 21:49:11 +01:00
#=================================================
# STANDARD UPGRADE STEPS
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
2017-02-06 23:40:55 +01:00
# Backup config, plugins and themes and delete previous files
2021-07-12 13:29:21 +02:00
#ynh_keep_if_no_upgrade plugins/*
#ynh_keep application/config/config.php
#ynh_keep upload
2017-02-06 23:40:55 +01:00
2021-07-12 13:29:21 +02:00
if [ "$upgrade_type" == "UPGRADE_APP" ]
then
ynh_script_progression --message="Upgrading source files..." --time --weight=1
2018-03-13 21:49:11 +01:00
2021-07-12 13:29:21 +02:00
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path" --keep="$final_path/plugins/* $final_path/application/config/config.php $final_path/upload"
fi
2018-03-14 03:32:46 +01:00
2021-07-12 13:10:03 +02:00
chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path"
2018-03-13 21:49:11 +01:00
#=================================================
# NGINX CONFIGURATION
#=================================================
2021-07-12 12:11:43 +02:00
ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1
2018-03-13 21:49:11 +01:00
2021-07-12 12:11:43 +02:00
# Create a dedicated NGINX config
2018-03-13 21:49:11 +01:00
ynh_add_nginx_config
#=================================================
2021-07-12 12:39:21 +02:00
# UPGRADE DEPENDENCIES
2018-03-13 21:49:11 +01:00
#=================================================
2021-07-12 12:44:16 +02:00
ynh_script_progression --message="Upgrading dependencies..." --weight=1
2018-03-13 21:49:11 +01:00
2021-07-12 12:39:21 +02:00
ynh_install_app_dependencies $pkg_dependencies
2015-06-01 00:00:38 +02:00
2018-03-13 21:49:11 +01:00
#=================================================
# PHP-FPM CONFIGURATION
#=================================================
2021-07-12 12:11:43 +02:00
ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1
2018-03-13 21:49:11 +01:00
2021-07-12 12:11:43 +02:00
# Create a dedicated PHP-FPM config
ynh_add_fpm_config
2018-03-13 21:49:11 +01:00
#=================================================
# SECURING FILES AND DIRECTORIES
#=================================================
2021-07-12 12:11:43 +02:00
2021-07-12 13:10:03 +02:00
#set_permissions
2018-03-13 21:49:11 +01:00
#=================================================
# UPGRADE DB
#=================================================
2015-06-01 00:00:38 +02:00
2017-02-06 23:40:55 +01:00
# Migrate DB
2019-05-19 19:02:35 +02:00
cd $final_path
ynh_exec_as "$app" php application/commands/console.php updatedb
2015-05-31 13:46:25 +02:00
2018-03-14 14:43:51 +01:00
#=================================================
# Send message to the admin
#=================================================
if ynh_version_le "2.62.2-2" ; then
message="LimeSurvey has been upgraded from version to version 3, note this new version change completely the survey themes system. If you have added or created manually some templates they won't be available in your LimeSurvey, a copy of their source code has been done in /home/yunohost.backup/$app-old-templates/. See https://manual.limesurvey.org/New_Template_System_in_LS3.x"
ynh_warn "$message"
ynh_send_readme_to_admin "$message" "$admin"
fi
2021-07-12 12:11:43 +02:00
#=================================================
# RELOAD NGINX
#=================================================
2021-07-12 12:16:32 +02:00
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
2021-07-12 12:11:43 +02:00
ynh_systemd_action --service_name=nginx --action=reload
#=================================================
# END OF SCRIPT
#=================================================
2021-07-12 12:16:32 +02:00
ynh_script_progression --message="Upgrade of $app completed" --last