1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/moodle_ynh.git synced 2024-09-03 19:46:23 +02:00
moodle_ynh/scripts/upgrade
eric_G 8c9d761a92
Testing (#96)
* Upgrade (#68)

* Apply example_ynh

* Fix melange-de-versions

https://forum.yunohost.org/t/melange-de-versions-de-moodle-detectees/19985

* Update manifest.json

* Auto-update README

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* 4.0.2 (#71)

* 4.0.2

* Auto-update README

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* Auto-update README

* Bullseye (#73)

* Update manifest.json

* Auto-update README

* Update upgrade

* Fix

* Auto-update README

* Auto-update README

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* 4.0.3 (#74)

* 4.0.3

* Auto-update README

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* 4.0.4

* Auto-update README

* 4.1.0 (#77)

* 4.1.0

* Auto-update README

* fix PHP

* Update config_panel.toml

* Update config_panel.toml

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* Auto-update README

* 4.1.1

* Auto-update README

* Update extra_php-fpm.conf

* Update extra_php-fpm.conf

* Auto-update README

* Update manifest.json

* Update extra_php-fpm.conf

* Update _common.sh

* Version 2 (#80)

* v2

* Fix

* Auto-update README

* fix

* Fix

* Update tests.toml

* Update manifest.toml

* Update _common.sh

* Update upgrade

* Update upgrade

* Update manifest.toml

* fix

* upgrade: remove unused code

---------

Co-authored-by: yunohost-bot <yunohost@yunohost.org>
Co-authored-by: Alexandre Aubin <alex.aubin@mailoo.org>

* Update manifest.toml

* cleaning

* Auto-update README

* Update manifest.toml

* Auto-update README

* Update manifest.toml

* fix

* 4.2.0 (#85)

* Update manifest.toml

* Auto-update README

* Update manifest.toml

* Update manifest.toml

* Update extra_php-fpm.conf

* Update extra_php-fpm.conf

* Update install

* Update install

---------

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* Upgrade to v4.2.1 (#88)

* Upgrade to v4.2.1

* Auto-update README

* Update manifest.toml

* Update manifest.toml

* Update manifest.toml

* Auto-update README

* cleaning

* Auto-update README

* cleaning

* Update manifest.toml

* Update manifest.toml

* Auto-update README

* Upgrade to v4.3.0 (#93)

* Auto-update README

* Upgrade to v4.3.0

* Auto-update README

* cleaning

* cleaning

* Auto-update README

* Upgrade to v4.3.1 (#94)

* Upgrade to v4.3.1

* Auto-update README

* cleaning

* Upgrade to v4.3.2 (#97)

---------

Co-authored-by: yalh76 <yalh@yahoo.com>
Co-authored-by: yunohost-bot <yunohost@yunohost.org>
Co-authored-by: Alexandre Aubin <alex.aubin@mailoo.org>
Co-authored-by: YunoHost Bot <yunohost-bot@users.noreply.github.com>
2023-12-22 14:01:45 +01:00

127 lines
5.2 KiB
Bash

#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# CHECK VERSION
#=================================================
upgrade_type=$(ynh_check_app_version_changed)
#=================================================
# STANDARD UPGRADE STEPS
#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
# If the admin is not defined, We can't upgrade this app
if [ -z "${admin:-}" ]; then
ynh_die --message="This app can't be upgraded from a very old version of the package. Please remove and reinstall Moodle"
fi
# If the site_name is not defined
if [ -z "${site_name:-}" ]; then
site_name="YunoHost"
ynh_app_setting_set --app=$app --key=site_name --value=$site_name
fi
# If fpm_footprint doesn't exist, create it
if [ -z "${fpm_footprint:-}" ]; then
fpm_footprint=low
ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint
fi
# If fpm_free_footprint doesn't exist, create it
if [ -z "${fpm_free_footprint:-}" ]; then
fpm_free_footprint=0
ynh_app_setting_set --app=$app --key=fpm_free_footprint --value=$fpm_free_footprint
fi
# If fpm_usage doesn't exist, create it
if [ -z "${fpm_usage:-}" ]; then
fpm_usage=low
ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage
fi
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
if [ "$upgrade_type" == "UPGRADE_APP" ]
then
ynh_script_progression --message="Upgrading source files..." --weight=6
# Create a temporary directory
tmpdir="$(mktemp -d)"
# Backup the config file in the temp dir
cp -a "$install_dir/config.php" "$tmpdir/config.php"
# Remove the app directory securely
ynh_secure_remove --file="$install_dir"
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir"
# Copy the admin saved settings from tmp directory to final path
cp -a "$tmpdir/config.php" "$install_dir/config.php"
# Remove the tmp directory securely
ynh_secure_remove --file="$tmpdir"
fi
chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
#=================================================
# REAPPLY SYSTEM CONFIGURATIONS
#=================================================
ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
ynh_add_nginx_config
ynh_add_config --template="cron" --destination="/etc/cron.d/$app"
chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app"
#=================================================
# SPECIFIC UPGRADE
#=================================================
# ACTIVATE LDAP SUPPORT
#=================================================
ynh_script_progression --message="Activate LDAP support..." --weight=20
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config SET value='ldap,email' WHERE name='auth';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='ldap://127.0.0.1/' WHERE plugin='auth_ldap' AND name='host_url';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='uid' WHERE plugin='auth_ldap' AND name='user_attribute';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='ou=users,dc=yunohost,dc=org' WHERE plugin='auth_ldap' AND name='contexts';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='givenName' WHERE plugin='auth_ldap' AND name='field_map_firstname';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='sn' WHERE plugin='auth_ldap' AND name='field_map_lastname';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='mail' WHERE plugin='auth_ldap' AND name='field_map_email';"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='onlogin' WHERE plugin='auth_ldap' AND (name='field_updatelocal_firstname' OR name='field_updatelocal_lastname' OR name='field_updatelocal_email');"
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='locked' WHERE plugin='auth_ldap' AND (name='field_lock_firstname' OR name='field_lock_lastname' OR name='field_lock_email');"
# The admin is an LDAP user
ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_user SET auth='ldap' WHERE username='$admin';"
php${phpversion} "$install_dir/admin/cli/purge_caches.php"
chmod 750 "$install_dir"
chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Upgrade of $app completed" --last