1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/ttrss_ynh.git synced 2024-10-01 13:34:46 +02:00
ttrss_ynh/scripts/upgrade

166 lines
4.9 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get $app domain)
path_url=$(ynh_app_setting_get $app path)
final_path=$(ynh_app_setting_get $app final_path)
db_name=$(ynh_app_setting_get $app db_name)
#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
if [ -z $final_path ]; then # If final_path doesn't exist, create it
final_path="/var/www/$app"
ynh_app_setting_set $app final_path $final_path
fi
if [ -z $db_name ]; then # If db_name doesn't exist, create it
db_name=$(ynh_sanitize_dbid $app)
ynh_app_setting_set $app db_name $db_name
fi
#=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#=================================================
ynh_backup_before_upgrade # Backup the current version of the app
ynh_clean_setup () {
# Delete any created temporary folder
if [ -v tmpdir ] && [ -d $tmpdir ]; then
ynh_secure_remove $tmpdir
fi
ynh_restore_upgradebackup # restore it if the upgrade fails
}
ynh_abort_if_errors # Active trap pour arrêter le script si une erreur est détectée.
#=================================================
# ENSURE DOWNWARD COMPATIBILITY BIS
#=================================================
# Remove old cron job
ynh_secure_remove "/etc/cron.d/$app"
#=================================================
# CHECK THE PATH
#=================================================
# Normalize the URL path syntax
path_url=$(ynh_normalize_url_path $path_url)
#=================================================
# STANDARD UPGRADE STEPS
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
# Create a temporary directory
tmpdir="$(ynh_smart_mktemp 10)"
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source "$tmpdir"
#=================================================
# NGINX CONFIGURATION
#=================================================
# Create a dedicated nginx config
ynh_add_nginx_config
if [ "$path_url" != "/" ]
then
ynh_replace_string "^#sub_path_only" "" "/etc/nginx/conf.d/$domain.d/$app.conf"
fi
ynh_store_file_checksum "/etc/nginx/conf.d/$domain.d/$app.conf"
#=================================================
# CREATE DEDICATED USER
#=================================================
# Create a system user
ynh_system_user_create $app
#=================================================
# PHP-FPM CONFIGURATION
#=================================================
# Create a dedicated php-fpm config
ynh_add_fpm_config
#=================================================
# SPECIFIC UPGRADE
#=================================================
# CONFIGURE TTRSS
#=================================================
# Backup the config file in the temp dir
cp -a "$final_path/config.php" "$tmpdir/config.php"
# Replace the old ttrss by the new one
ynh_secure_remove "$final_path"
mv "$tmpdir" "$final_path"
ynh_secure_remove "$tmpdir"
# Verify the checksum and backup the file if it's different
ynh_backup_if_checksum_is_different "$final_path/config.php"
cp ../conf/config.php "$final_path/config.php"
# Change variables in ttrss configuration
ynh_replace_string "__DBNAME__" "$db_name" "$final_path/config.php"
db_pwd=$(ynh_app_setting_get $app mysqlpwd)
ynh_replace_string "__DBPWD__" "$db_pwd" "$final_path/config.php"
ynh_replace_string "__DOMAINPATH__" "https://$domain$path_url" "$final_path/config.php"
# Recalculate and store the config file checksum into the app settings
ynh_store_file_checksum "$final_path/config.php"
#=================================================
# UPGRADE DATABASE
#=================================================
chown -R $app: $final_path
sudo -u $app php ${final_path}/update.php --update-schema
#=================================================
# SECURE FILES AND DIRECTORIES
#=================================================
# Set permissions to app files
chown -R root: $final_path
chmod 0755 $final_path
chown -R $app $final_path/{cache,feed-icons,lock}
#=================================================
# UPGRADE SERVICE
#=================================================
ynh_add_systemd_config
systemctl restart $app
#=================================================
# ADVERTISE SERVICE IN ADMIN PANEL
#=================================================
yunohost service add $app
#=================================================
# GENERIC FINALIZATION
#=================================================
# RELOAD NGINX
#=================================================
systemctl reload nginx