From 2361ddb633e6dcd67e320badb0a0ca31e40054c9 Mon Sep 17 00:00:00 2001 From: Kayou Date: Sun, 3 Feb 2019 21:40:29 +0100 Subject: [PATCH] Add change_url --- check_process | 13 ++--- manifest.json | 2 +- scripts/change_url | 126 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 10 deletions(-) create mode 100644 scripts/change_url diff --git a/check_process b/check_process index 74c836a..2fc5436 100644 --- a/check_process +++ b/check_process @@ -14,22 +14,17 @@ setup_public=1 upgrade=1 backup_restore=1 - multi_instance=0 - wrong_user=1 - wrong_path=1 + multi_instance=1 incorrect_path=1 - corrupt_source=1 - fail_download_source=1 - port_already_use=1 - final_path_already_use=1 + port_already_use=1 (8095) + change_url=1 ;;; Levels Level 1=auto Level 2=auto Level 3=auto Level 4=na # level 4: https://github.com/YunoHost-Apps/lstu_ynh/issues/4 - Level 5=1 -# level 5: https://github.com/YunoHost-Apps/lstu_ynh/issues/3 + Level 5=auto Level 6=auto Level 7=auto Level 8=0 diff --git a/manifest.json b/manifest.json index 9e6a229..a65c897 100644 --- a/manifest.json +++ b/manifest.json @@ -16,7 +16,7 @@ "name": "frju365", "email": "abld@abld.info" }, - "multi_instance": false, + "multi_instance": true, "services": [ "nginx" ], diff --git a/scripts/change_url b/scripts/change_url new file mode 100644 index 0000000..88ceef9 --- /dev/null +++ b/scripts/change_url @@ -0,0 +1,126 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +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 + +#================================================= +# LOAD SETTINGS +#================================================= + +# Needed for helper "ynh_add_nginx_config" +final_path=$(ynh_app_setting_get $app final_path) + +# Needed for lstu conf +port=$(ynh_app_setting_get $app port) +db_name=$(ynh_app_setting_get "$app" db_name) +db_pwd=$(ynh_app_setting_get $app psqlpwd) +db_user=$db_name +secret=$(ynh_app_setting_get $app secret) + +#================================================= +# CHECK THE SYNTAX OF THE PATHS +#================================================= + +test -n "$old_path" || old_path="/" +test -n "$new_path" || new_path="/" +new_path=$(ynh_normalize_url_path $new_path) +old_path=$(ynh_normalize_url_path $old_path) + +#================================================= +# 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 +#================================================= +# MODIFY URL IN NGINX CONF +#================================================= + +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 + # Make a backup of the original nginx config file if modified + ynh_backup_if_checksum_is_different "$nginx_conf_path" + # Set global variables for nginx helper + domain="$old_domain" + path_url="$new_path" + # Create a dedicated nginx config + ynh_add_nginx_config +fi + +# Change the domain for nginx +if [ $change_domain -eq 1 ] +then + # Delete file checksum for the old conf file location + ynh_delete_file_checksum "$nginx_conf_path" + mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf + # Store file checksum for the new config file location + ynh_store_file_checksum "/etc/nginx/conf.d/$new_domain.d/$app.conf" +fi + +#================================================= +# SPECIFIC MODIFICATIONS +#================================================= +# SETUP LSTU +#================================================= + +domain="$new_domain" +path_url="$new_path" + +ynh_backup_if_checksum_is_different "$final_path/lstu.conf" +cp ../conf/lstu.conf.template "${final_path}/lstu.conf" +ynh_replace_string "__DOMAIN__" "$domain" "${final_path}/lstu.conf" +ynh_replace_string "__PATH__" "$path_url" "${final_path}/lstu.conf" +ynh_replace_string "__PORT__" "$port" "${final_path}/lstu.conf" +ynh_replace_string "__DB_NAME__" "$db_name" "${final_path}/lstu.conf" +ynh_replace_string "__DB_USER__" "$db_user" "${final_path}/lstu.conf" +ynh_replace_string "__DB_PWD__" "$db_pwd" "${final_path}/lstu.conf" + +ynh_replace_string "__SECRET__" "$secret" "${final_path}/lstu.conf" +ynh_store_file_checksum "${final_path}/lstu.conf" + +#================================================= +# GENERIC FINALISATION +#================================================= +# RESTART LSTU +#================================================= + +ynh_systemd_action -n $app -a reload -l "Starting hot deployment for Hypnotoad server" -p "systemd" + +#================================================= +# RELOAD NGINX +#================================================= + +systemctl reload nginx \ No newline at end of file