seafile_ynh/scripts/change_url

172 lines
5.6 KiB
Text
Raw Normal View History

2017-08-09 22:13:32 +02:00
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
2017-08-09 22:13:32 +02:00
# Source YunoHost helpers
source /usr/share/yunohost/helpers
# Stop script if errors
ynh_abort_if_errors
# Import common cmd
source ./experimental_helper.sh
2017-08-09 22:13:32 +02:00
source ./_common.sh
# Retrive arguments
old_domain=$YNH_APP_OLD_DOMAIN
2017-12-01 23:58:31 +01:00
old_path=$YNH_APP_OLD_PATH
2017-08-09 22:13:32 +02:00
new_domain=$YNH_APP_NEW_DOMAIN
2017-12-01 23:58:31 +01:00
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)
2017-08-09 22:13:32 +02:00
2017-12-01 23:58:31 +01:00
# Get dest folder and system user
2017-08-09 22:13:32 +02:00
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
#=================================================
2017-08-09 22:13:32 +02:00
# STANDARD MODIFICATIONS
#=================================================
2017-08-09 22:13:32 +02:00
# 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"
2017-12-30 16:56:07 +01:00
ynh_replace_string "location ${old_path2}media/ {" "location ${new_path2}media/ {" "$nginx_conf_path"
2017-08-09 22:13:32 +02:00
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
2017-12-09 22:25:54 +01:00
sed --in-place "s@ALLOWED_HOSTS = \['${old_domain}'\]@ALLOWED_HOSTS = \['${new_domain}'\]@g" $final_path/conf/seahub_settings.py
2017-08-09 22:13:32 +02:00
# 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