#!/bin/bash # Source YunoHost helpers source /usr/share/yunohost/helpers # Stop script if errors ynh_abort_if_errors # Import common cmd source ./_common.sh # Retrive 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 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) # Get dest folder and system user get_configuration # Create special path with / at the end if [[ $old_path == '/' ]] then old_path2=$old_path else old_path2=$old_path'/' fi if [[ $new_path == '/' ]] then new_path2=$new_path else new_path2=$new_path'/' fi # 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 ynh_replace_string "location $old_path {" "location $new_path {" "$nginx_conf_path" ynh_replace_string "location ${old_path2}media {" "location ${new_path2}media {" "$nginx_conf_path" fi # Change the domain for nginx if [ $change_domain -eq 1 ] then sudo mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf fi # Stop service before any change sudo systemctl stop seafile-server.service # Update Seafile Config ynh_replace_string "SERVICE_URL = https://$old_domain$old_path" "SERVICE_URL = https://$new_domain$new_path" $final_path/conf/ccnet.conf ynh_replace_string 'FILE_SERVER_ROOT = "https://'"$old_domain"'/seafhttp"' 'FILE_SERVER_ROOT = "https://'"$new_domain"'/seafhttp"' $final_path/conf/seahub_settings.py ynh_replace_string 'SITE_ROOT = "'"$old_path2"'"' 'SITE_ROOT = "'"$new_path2"'"' $final_path/conf/seahub_settings.py ynh_replace_string 'MEDIA_URL = "'"$old_path2"'media/"' 'MEDIA_URL = "'"$new_path2"'media/"' $final_path/conf/seahub_settings.py ynh_replace_string "LOGIN_URL = '${old_path2}accounts/login/'" "LOGIN_URL = '${new_path2}accounts/login/'" $final_path/conf/seahub_settings.py ynh_replace_string ' = "seafile@'"$old_domain"'"' ' = "seafile@'"$new_domain"'"' $final_path/conf/seahub_settings.py sed --in-place "s@ALLOWED_HOSTS = \['${old_domain}'\]@ALLOWED_HOSTS = \['${new_domain}'\]@g" $final_path/conf/seahub_settings.py # Update database # This fonction relplace all old domain name by the new domain name. # use : mysql_relpace_db db_name table collum mysql_relpace_db() { sql_request='UPDATE `'"$2"'` SET '"$3 = replace($3, '$old_domain', '$new_domain')" ynh_mysql_execute_as_root "$sql_request" $1 } # ccnet DB mysql_relpace_db ccnetdb EmailUser email mysql_relpace_db ccnetdb Group creator_name mysql_relpace_db ccnetdb GroupUser user_name mysql_relpace_db ccnetdb LDAPUsers email mysql_relpace_db ccnetdb Organization creator mysql_relpace_db ccnetdb OrgUser email mysql_relpace_db ccnetdb UserRole email # seafile DB mysql_relpace_db seafiledb OrgUserQuota user mysql_relpace_db seafiledb RepoGroup user_name mysql_relpace_db seafiledb RepoOwner owner_id mysql_relpace_db seafiledb RepoTrash owner_id mysql_relpace_db seafiledb RepoUserToken email mysql_relpace_db seafiledb SharedRepo from_email mysql_relpace_db seafiledb SharedRepo to_email mysql_relpace_db seafiledb UserQuota user mysql_relpace_db seafiledb UserShareQuota user # seahub DB mysql_relpace_db seahubdb api2_token user mysql_relpace_db seahubdb api2_tokenv2 user mysql_relpace_db seahubdb avatar_avatar emailuser mysql_relpace_db seahubdb base_clientlogintoken username mysql_relpace_db seahubdb base_devicetoken user mysql_relpace_db seahubdb base_filecomment author mysql_relpace_db seahubdb base_innerpubmsg from_email mysql_relpace_db seahubdb base_innerpubmsgreply from_email mysql_relpace_db seahubdb base_userenabledmodule username mysql_relpace_db seahubdb base_userlastlogin username mysql_relpace_db seahubdb base_userstarredfiles email mysql_relpace_db seahubdb group_groupmessage from_email mysql_relpace_db seahubdb group_messagereply from_email mysql_relpace_db seahubdb institutions_institutionadmin user mysql_relpace_db seahubdb notifications_usernotification to_user mysql_relpace_db seahubdb options_useroptions email mysql_relpace_db seahubdb post_office_attachment_emails email_id mysql_relpace_db seahubdb post_office_email from_email mysql_relpace_db seahubdb profile_profile user mysql_relpace_db seahubdb profile_profile login_id mysql_relpace_db seahubdb profile_profile contact_email mysql_relpace_db seahubdb registration_registrationprofile emailuser_id mysql_relpace_db seahubdb share_anonymousshare repo_owner mysql_relpace_db seahubdb share_fileshare username mysql_relpace_db seahubdb share_privatefiledirshare from_user mysql_relpace_db seahubdb share_privatefiledirshare to_user mysql_relpace_db seahubdb share_uploadlinkshare username mysql_relpace_db seahubdb sysadmin_extra_userloginlog username mysql_relpace_db seahubdb termsandconditions_usertermsandconditions username mysql_relpace_db seahubdb two_factor_phonedevice user mysql_relpace_db seahubdb two_factor_staticdevice user mysql_relpace_db seahubdb two_factor_totpdevice user mysql_relpace_db seahubdb wiki_personalwiki username # Reload services sudo systemctl reload nginx.service sudo systemctl start seafile-server.service