#!/bin/bash #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 if ynh_compare_current_package_version --comparison lt --version "2.4~ynh1"; then # Migrate old (erroneous) database scheme (see: https://github.com/YunoHost-Apps/wallabag2_ynh/pull/125#issuecomment-1041426972) ynh_script_progression --message="Migrating old (pre-2018) database scheme..." --weight=11 ynh_exec_warn_less ynh_mysql_execute_file_as_root --database="$db_name" --file="../conf/foreign-keys-removal.sql" ynh_script_progression --message="Database migration done. Resuming normal upgrade process" --weight=11 fi #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= ynh_script_progression "Upgrading source files..." ynh_setup_source --dest_dir="$install_dir" --full_replace --keep="app/config/parameters.yml var/logs web/assets/images" # Create log dir/file is it useless? mkdir -p "$install_dir/var/logs/" touch "$install_dir/var/logs/prod.log" # Set permissions to app files # Restrict rights to Wallabag user only if [ -e "$install_dir/var/cache/prod/appProdProjectContainer.php" ]; then chmod 700 "$install_dir/var/cache/prod/appProdProjectContainer.php" fi #================================================= # INSTALL SYMFONY LDAP #================================================= ynh_script_progression --message="Installing dependencies for LDAP..." --weight=1 # Some trick to actually not run composer install… ynh_install_composer --install_args="--dry-run" ynh_composer_exec --commands="require symfony/ldap" # SYMFONY_ENV=prod ynh_composer_exec --commands="install --no-dev" chown -R "$app:www-data" "$install_dir" #================================================= # UPDATE A CONFIG FILE #================================================= ynh_script_progression "Reconfiguring $app..." ynh_add_config --template="parameters.yml" --destination="$install_dir/app/config/parameters.yml" chmod 600 "$install_dir/app/config/parameters.yml" chown "$app:$app" "$install_dir/app/config/parameters.yml" # Upgrade database and clear the cache php_exec doctrine:migrations:migrate php_exec cache:clear # Configure Wallabag instance URL ynh_mysql_db_shell <<< "UPDATE internal_setting SET value = 'https://$domain$path' WHERE name = 'wallabag_url'" #================================================= # SETUP HOOKS #================================================= ynh_replace --match="__APP__" --replace="$app" --file="../hooks/post_user_create" ynh_replace --match="__APP__" --replace="$app" --file="../hooks/post_user_delete" #================================================= # REAPPLY SYSTEM CONFIGURATIONS #================================================= ynh_script_progression "Upgrading system configurations related to $app..." ynh_config_add_nginx ynh_config_add_phpfpm ynh_config_add_logrotate "$install_dir/var/logs/prod.log" ynh_config_add_fail2ban --logpath="$install_dir/var/logs/prod.log" --failregex='app.ERROR: Authentication failure for user "([\w]+)?", from IP ""' # same as install config #================================================= # END OF SCRIPT #================================================= ynh_script_progression "Upgrade of $app completed"