| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | 
							- #!/bin/bash
 
- #=================================================
 
- # GENERIC START
 
- #=================================================
 
- # IMPORT GENERIC HELPERS
 
- #=================================================
 
- source _common.sh
 
- source /usr/share/yunohost/helpers
 
- #=================================================
 
- # LOAD SETTINGS
 
- #=================================================
 
- ynh_print_info "Loading installation settings..."
 
- app=$YNH_APP_INSTANCE_NAME
 
- domain=$(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
 
- #=================================================
 
- ynh_print_info "Ensuring downward compatibility..."
 
- # Fix is_public as a boolean value
 
- if [ "$is_public" = "Yes" ]; then
 
- 	ynh_app_setting_set $app is_public 1
 
- 	is_public=1
 
- elif [ "$is_public" = "No" ]; then
 
- 	ynh_app_setting_set $app is_public 0
 
- 	is_public=0
 
- fi
 
- # If db_name doesn't exist, create it
 
- if [ -z $db_name ]; then
 
- 	db_name=$(ynh_sanitize_dbid $app)
 
- 	ynh_app_setting_set $app db_name $db_name
 
- fi
 
- # If final_path doesn't exist, create it
 
- if [ -z $final_path ]; then
 
- 	final_path=/var/www/$app
 
- 	ynh_app_setting_set $app final_path $final_path
 
- fi
 
- #=================================================
 
- # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
 
- #=================================================
 
- ynh_print_info "Backing up the app before upgrading (may take a while)..."
 
- # Backup the current version of the app
 
- ynh_backup_before_upgrade
 
- ynh_clean_setup () {
 
- 	# restore it if the upgrade fails
 
- 	ynh_restore_upgradebackup
 
- }
 
- # Exit if an error occurs during the execution of the script
 
- ynh_abort_if_errors
 
- #=================================================
 
- # CHECK THE PATH
 
- #=================================================
 
- # Normalize the URL path syntax
 
- path_url=$(ynh_normalize_url_path $path_url)
 
- #=================================================
 
- # STANDARD UPGRADE STEPS
 
- #=================================================
 
- # DOWNLOAD, CHECK AND UNPACK SOURCE
 
- #=================================================
 
- ynh_print_info "Upgrading source files..."
 
- # Download, check integrity, uncompress and patch the source from app.src
 
- ynh_setup_source "$final_path"
 
- #=================================================
 
- # NGINX CONFIGURATION
 
- #=================================================
 
- ynh_print_info "Upgrading nginx web server configuration..."
 
- # Create a dedicated nginx config
 
- ynh_add_nginx_config
 
- #=================================================
 
- # UPGRADE DEPENDENCIES
 
- #=================================================
 
- ynh_print_info "Upgrading dependencies..."
 
- ynh_install_app_dependencies deb1 deb2
 
- #=================================================
 
- # CREATE DEDICATED USER
 
- #=================================================
 
- ynh_print_info "Making sure dedicated system user exists..."
 
- # Create a dedicated user (if not existing)
 
- ynh_system_user_create $app
 
- #=================================================
 
- # PHP-FPM CONFIGURATION
 
- #=================================================
 
- ynh_print_info "Upgrading php-fpm configuration..."
 
- # Create a dedicated php-fpm config
 
- ynh_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
 
- #=================================================
 
- ynh_print_info "Upgrading logrotate configuration..."
 
- # Use logrotate to manage app-specific logfile(s)
 
- ynh_use_logrotate --non-append
 
- #=================================================
 
- # SETUP SYSTEMD
 
- #=================================================
 
- ynh_print_info "Upgrading systemd configuration..."
 
- # Create a dedicated systemd config
 
- ynh_add_systemd_config
 
- #=================================================
 
- # GENERIC FINALIZATION
 
- #=================================================
 
- # SECURE FILES AND DIRECTORIES
 
- #=================================================
 
- # Set permissions on app files
 
- chown -R root: $final_path
 
- #=================================================
 
- # SETUP SSOWAT
 
- #=================================================
 
- ynh_print_info "Upgrading SSOwat configuration..."
 
- # Make app public if necessary
 
- if [ $is_public -eq 1 ]
 
- then
 
- 	# unprotected_uris allows SSO credentials to be passed anyway
 
- 	ynh_app_setting_set $app unprotected_uris "/"
 
- fi
 
- #=================================================
 
- # RELOAD NGINX
 
- #=================================================
 
- ynh_print_info "Reloading nginx web server..."
 
- systemctl reload nginx
 
- #=================================================
 
- # END OF SCRIPT
 
- #=================================================
 
- ynh_print_info "Upgrade of $app completed"
 
 
  |