| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | #!/bin/bash#=================================================# GENERIC START#=================================================# IMPORT GENERIC HELPERS#=================================================source _common.shsource /usr/share/yunohost/helpers#=================================================# LOAD SETTINGS#=================================================app=$YNH_APP_INSTANCE_NAMEdomain=$(ynh_app_setting_get $app domain)path_url=$(ynh_app_setting_get $app path)admin=$(ynh_app_setting_get $app admin)is_public=$(ynh_app_setting_get $app is_public)final_path=$(ynh_app_setting_get $app final_path)language=$(ynh_app_setting_get $app language)db_name=$(ynh_app_setting_get $app db_name)#=================================================# ENSURE DOWNWARD COMPATIBILITY#=================================================# Fix is_public as a boolean valueif [ "$is_public" = "Yes" ]; then	ynh_app_setting_set $app is_public 1	is_public=1elif [ "$is_public" = "No" ]; then	ynh_app_setting_set $app is_public 0	is_public=0fi# If db_name doesn't exist, create itif [ -z $db_name ]; then	db_name=$(ynh_sanitize_dbid $app)	ynh_app_setting_set $app db_name $db_namefi# If final_path doesn't exist, create itif [ -z $final_path ]; then	final_path=/var/www/$app	ynh_app_setting_set $app final_path $final_pathfi#=================================================# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP#=================================================# Backup the current version of the appynh_backup_before_upgradeynh_clean_setup () {	# restore it if the upgrade fails	ynh_restore_upgradebackup}# Exit if an error occurs during the execution of the scriptynh_abort_if_errors#=================================================# CHECK THE PATH#=================================================# Normalize the URL path syntaxpath_url=$(ynh_normalize_url_path $path_url)#=================================================# STANDARD UPGRADE STEPS#=================================================# DOWNLOAD, CHECK AND UNPACK SOURCE#=================================================# Download, check integrity, uncompress and patch the source from app.srcynh_setup_source "$final_path"#=================================================# NGINX CONFIGURATION#=================================================# Create a dedicated nginx configynh_add_nginx_config#=================================================# UPGRADE DEPENDENCIES#=================================================ynh_install_app_dependencies deb1 deb2#=================================================# CREATE DEDICATED USER#=================================================# Create a dedicated user (if not existing)ynh_system_user_create $app#=================================================# PHP-FPM CONFIGURATION#=================================================# Create a dedicated php-fpm configynh_add_fpm_config#=================================================# SPECIFIC UPGRADE#=================================================# ...#=================================================### Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script.### And create a backup of this file if the checksum is different. So the file will be backed up if the admin had modified it.ynh_backup_if_checksum_is_different "$final_path/CONFIG_FILE"# Recalculate and store the checksum of the file for the next upgrade.ynh_store_file_checksum "$final_path/CONFIG_FILE"#=================================================# SETUP LOGROTATE#=================================================# Use logrotate to manage app-specific logfile(s)ynh_use_logrotate --non-append#=================================================# SETUP SYSTEMD#=================================================# Create a dedicated systemd configynh_add_systemd_config#=================================================# GENERIC FINALIZATION#=================================================# SECURE FILES AND DIRECTORIES#=================================================# Set permissions on app fileschown -R root: $final_path#=================================================# SETUP SSOWAT#=================================================# Make app public if necessaryif [ $is_public -eq 1 ]then	# unprotected_uris allows SSO credentials to be passed anyway	ynh_app_setting_set $app unprotected_uris "/"fi#=================================================# RELOAD NGINX#=================================================systemctl reload nginx
 |