| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | #!/bin/bash | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # GENERIC STARTING | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # IMPORT GENERIC HELPERS | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-05 13:06:12 +02:00
										 |  |  | source _common.sh | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | source /usr/share/yunohost/helpers | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # RETRIEVE ARGUMENTS | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | old_domain=$YNH_APP_OLD_DOMAIN | 
					
						
							|  |  |  | old_path=$YNH_APP_OLD_PATH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | new_domain=$YNH_APP_NEW_DOMAIN | 
					
						
							|  |  |  | new_path=$YNH_APP_NEW_PATH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | app=$YNH_APP_INSTANCE_NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-17 00:20:13 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # LOAD SETTINGS | 
					
						
							|  |  |  | #================================================= | 
					
						
							| 
									
										
										
										
											2019-04-18 19:58:47 +02:00
										 |  |  | ynh_script_progression --message="Loading installation settings..." --time --weight=1 | 
					
						
							| 
									
										
										
										
											2018-07-17 00:20:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Needed for helper "ynh_add_nginx_config" | 
					
						
							| 
									
										
										
										
											2019-04-16 00:32:39 +02:00
										 |  |  | final_path=$(ynh_app_setting_get --app=$app --key=final_path) | 
					
						
							| 
									
										
										
										
											2018-07-17 00:20:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Add settings here as needed by your application | 
					
						
							| 
									
										
										
										
											2019-04-16 00:32:39 +02:00
										 |  |  | #db_name=$(ynh_app_setting_get --app=$app --key=db_name) | 
					
						
							| 
									
										
										
										
											2019-05-02 21:04:03 +02:00
										 |  |  | #db_user=$db_name | 
					
						
							| 
									
										
										
										
											2019-04-16 00:32:39 +02:00
										 |  |  | #db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd) | 
					
						
							| 
									
										
										
										
											2018-07-17 00:20:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-19 16:23:55 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | ynh_script_progression --message="Backing up the app before changing its url (may take a while)..." --time --weight=1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Backup the current version of the app | 
					
						
							|  |  |  | ynh_backup_before_upgrade | 
					
						
							|  |  |  | ynh_clean_setup () { | 
					
						
							|  |  |  | 	# Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. | 
					
						
							|  |  |  | 	ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	# restore it if the upgrade fails | 
					
						
							|  |  |  | 	ynh_restore_upgradebackup | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | # Exit if an error occurs during the execution of the script | 
					
						
							|  |  |  | ynh_abort_if_errors | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # CHECK WHICH PARTS SHOULD BE CHANGED | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | change_domain=0 | 
					
						
							|  |  |  | if [ "$old_domain" != "$new_domain" ] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  | 	change_domain=1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | change_path=0 | 
					
						
							|  |  |  | if [ "$old_path" != "$new_path" ] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  | 	change_path=1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # STANDARD MODIFICATIONS | 
					
						
							| 
									
										
										
										
											2019-05-02 20:44:22 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # STOP SYSTEMD SERVICE | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | ynh_script_progression --message="Stopping a systemd service..." --time --weight=1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # MODIFY URL IN NGINX CONF | 
					
						
							|  |  |  | #================================================= | 
					
						
							| 
									
										
										
										
											2019-04-18 19:58:47 +02:00
										 |  |  | ynh_script_progression --message="Updating nginx web server configuration..." --time --weight=1 | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Change the path in the nginx config file | 
					
						
							|  |  |  | if [ $change_path -eq 1 ] | 
					
						
							|  |  |  | then | 
					
						
							| 
									
										
										
										
											2018-06-23 14:45:28 +02:00
										 |  |  | 	# Make a backup of the original nginx config file if modified | 
					
						
							| 
									
										
										
										
											2019-04-16 00:32:39 +02:00
										 |  |  | 	ynh_backup_if_checksum_is_different --file="$nginx_conf_path" | 
					
						
							| 
									
										
										
										
											2018-06-23 14:45:28 +02:00
										 |  |  | 	# Set global variables for nginx helper | 
					
						
							|  |  |  | 	domain="$old_domain" | 
					
						
							|  |  |  | 	path_url="$new_path" | 
					
						
							|  |  |  | 	# Create a dedicated nginx config | 
					
						
							|  |  |  | 	ynh_add_nginx_config | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Change the domain for nginx | 
					
						
							|  |  |  | if [ $change_domain -eq 1 ] | 
					
						
							|  |  |  | then | 
					
						
							| 
									
										
										
										
											2018-06-23 14:45:28 +02:00
										 |  |  | 	# Delete file checksum for the old conf file location | 
					
						
							| 
									
										
										
										
											2019-04-16 00:32:39 +02:00
										 |  |  | 	ynh_delete_file_checksum --file="$nginx_conf_path" | 
					
						
							| 
									
										
										
										
											2017-08-23 17:11:20 +02:00
										 |  |  | 	mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf | 
					
						
							| 
									
										
										
										
											2018-06-23 14:45:28 +02:00
										 |  |  | 	# Store file checksum for the new config file location | 
					
						
							| 
									
										
										
										
											2019-04-16 00:32:39 +02:00
										 |  |  | 	ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # SPECIFIC MODIFICATIONS | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # ... | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # GENERIC FINALISATION | 
					
						
							| 
									
										
										
										
											2019-05-02 20:44:22 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # START SYSTEMD SERVICE | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | ynh_script_progression --message="Starting a systemd service..." --time --weight=1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | #================================================= | 
					
						
							|  |  |  | # RELOAD NGINX | 
					
						
							|  |  |  | #================================================= | 
					
						
							| 
									
										
										
										
											2019-04-18 19:58:47 +02:00
										 |  |  | ynh_script_progression --message="Reloading nginx web server..." --time --weight=1 | 
					
						
							| 
									
										
										
										
											2017-06-02 18:46:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 19:58:47 +02:00
										 |  |  | ynh_systemd_action --service_name=nginx --action=reload | 
					
						
							| 
									
										
										
										
											2019-02-10 15:02:38 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | # END OF SCRIPT | 
					
						
							|  |  |  | #================================================= | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 19:58:47 +02:00
										 |  |  | ynh_script_progression --message="Change of URL completed for $app" --time --last |