1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/wallabag2_ynh.git synced 2024-10-01 13:35:06 +02:00
wallabag2_ynh/scripts/upgrade
2024-09-20 08:38:04 +02:00

93 lines
3.6 KiB
Bash

#!/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 "<HOST>"' # same as install config
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression "Upgrade of $app completed"