#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # CHECK VERSION #================================================= ynh_script_progression --message="Checking version..." --weight=1 upgrade_type=$(ynh_check_app_version_changed) #================================================= # STANDARD UPGRADE STEPS #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 # If fpm_footprint doesn't exist, create it if [ -z "${fpm_footprint:-}" ]; then fpm_footprint=medium ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint fi # If fpm_usage doesn't exist, create it if [ -z "${fpm_usage:-}" ]; then fpm_usage=medium ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage fi # If with_sftp or password don't exist, create them if [ -z "${with_sftp:-}" ] || [ -z "${password:-}" ]; then ynh_app_setting_set --app=$app --key=with_sftp --value="false" ynh_app_setting_set --app=$app --key=password --value=$(ynh_string_random) fi # Delete existing ini configuration file (backward compatibility) if [ -f /etc/php/$phpversion/fpm/conf.d/20-$app.ini ]; then ynh_secure_remove --file=/etc/php/$phpversion/fpm/conf.d/20-$app.ini fi #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=2 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" --source_id="app-upgrade" ynh_setup_source --dest_dir="$install_dir/user/plugins/login-ldap" --source_id="ldap" fi # Set permissions on app files chown -R $app:www-data "$install_dir" find "$install_dir" -type f -exec chmod 640 {} \; find "$install_dir/bin" -type f -exec chmod 750 {} \; find "$install_dir" -type d -exec chmod 750 {} \; find "$install_dir" -type d -exec chmod +s {} \; #================================================= # PHP-FPM CONFIGURATION #================================================= ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 # Create a dedicated PHP-FPM config ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint #================================================= # NGINX CONFIGURATION #================================================= ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=2 # Create a dedicated NGINX config ynh_add_nginx_config #================================================= # SPECIFIC UPGRADE #================================================= # UPDATE A CONFIG FILE #================================================= ynh_script_progression --message="Updating a configuration file..." --weight=3 mkdir -p "$install_dir/user/config/plugins/login-ldap" touch "$install_dir/user/accounts/admin.yaml" ynh_add_config --template="../conf/login-ldap.yaml" --destination="$install_dir/user/config/plugins/login-ldap.yaml" chown $app:$app "$install_dir/user/config/plugins/login-ldap.yaml" chmod 640 "$install_dir/user/config/plugins/login-ldap.yaml" #================================================= # UPGRADE PLUGINS #================================================= ynh_script_progression --message="Updating all plugins..." --weight=1 pushd "$install_dir" ynh_exec_warn_less yes N | ynh_exec_warn_less ynh_exec_as $app php${phpversion} bin/gpm update --all-yes --no-interaction || ynh_print_warn --message="Automatic plugin upgrade has failed, you can upgrade them from your Grav admin panel." popd #================================================= # UPDATE A CRON TASK #================================================ ynh_script_progression --message="Updating a cron task..." --weight=1 echo "* * * * * $app php${phpversion} $install_dir/bin/grav scheduler 1>> /dev/null 2>&1" > /etc/cron.d/$app chmod 644 /etc/cron.d/$app #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Upgrade of $app completed" --last