seafile_ynh/scripts/upgrade

159 lines
4.9 KiB
Text
Raw Normal View History

#!/bin/bash
2017-07-21 14:56:41 +02:00
# Source YunoHost helpers
source /usr/share/yunohost/helpers
# Stop script if errors
ynh_abort_if_errors
2017-01-05 23:24:32 +01:00
# Import common cmd
source ./_common.sh
2017-07-21 14:56:41 +02:00
# Init get Final path
get_configuration
2017-07-21 14:56:41 +02:00
# Retrieve arguments
domain=$(ynh_app_setting_get $app domain)
path=$(ynh_normalize_url_path $(ynh_app_setting_get $app path))
installed_version=$(ynh_app_setting_get $app installed_version)
2017-09-30 15:07:56 +02:00
seahub_port=$(ynh_app_setting_get $app seahub_port)
fileserver_port=$(ynh_app_setting_get $app fileserver_port)
webdav_port=$(ynh_app_setting_get $app webdav_port)
2017-07-21 14:56:41 +02:00
root_pwd=$(cat /etc/yunohost/mysql)
2017-07-21 14:56:41 +02:00
# Get configuration for user and final path
get_configuration
2017-09-30 17:52:42 +02:00
# Create special path with / at the end
set_path_2
# Download new version from sources
get_source $architecture $seafile_version
2017-01-05 23:24:32 +01:00
# stop seafile server
2017-07-21 14:56:41 +02:00
systemctl stop seafile-server.service
2017-01-05 23:24:32 +01:00
# extract new version
2017-07-21 14:56:41 +02:00
test -e $final_path/seafile-server-$seafile_version && rm -rf "$final_path/seafile-server-$seafile_version"
extract_source
# permission to execute update script and expect helper
2017-07-21 14:56:41 +02:00
chmod +x ../conf/upgrade_*.exp
chmod +x ../conf/minor-upgrade.exp
chmod +x $final_path/seafile-server-$seafile_version/upgrade/upgrade_*.sh
chmod +x $final_path/seafile-server-$seafile_version/upgrade/minor-upgrade.sh
2017-05-05 15:43:32 +02:00
# do the upgrade ( the ";&" syntax mean when it go in the frist cas how are true it do the next case)
case $installed_version in
"4.0."* )
# Update seafile by script
2017-07-21 14:56:41 +02:00
../conf/upgrade_4.1.1.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-05-05 15:43:32 +02:00
;&
"4.1."* )
# Update seafile by script
2017-07-21 14:56:41 +02:00
../conf/upgrade_4.2.1.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-05-05 15:43:32 +02:00
;&
"4.3."* )
# Update seafile by script
2017-07-21 14:56:41 +02:00
../conf/upgrade_4.4.3.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-05-05 15:43:32 +02:00
;&
"4.4."* )
# Update seafile by script
2017-07-21 14:56:41 +02:00
../conf/upgrade_5.0.3.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-05-05 15:43:32 +02:00
;&
"5.0."* )
# Update seafile by script
2017-07-21 14:56:41 +02:00
../conf/upgrade_5.1.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-05-05 15:43:32 +02:00
;&
"5.1."* )
# Update seafile by script
2017-07-21 14:56:41 +02:00
../conf/upgrade_6.0.exp $final_path/seafile-server-$seafile_version $root_pwd
;&
"6.0."* )
python ../conf/update_sso_conf.py
install_dependance
# Update seafile by script
../conf/upgrade_6.1.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-08-09 15:34:10 +02:00
# Enable manually wiki
echo 'ENABLE_WIKI = True' | tee -a $final_path/conf/seahub_settings.py
2017-05-05 15:43:32 +02:00
;&
2017-09-30 15:07:56 +02:00
"6.1."* )
# Update seafile by script
../conf/upgrade_6.2.exp $final_path/seafile-server-$seafile_version $root_pwd
;&
esac
2017-07-21 14:56:41 +02:00
../conf/minor-upgrade.exp $final_path/seafile-server-$seafile_version $root_pwd
2017-05-05 15:43:32 +02:00
## Install webdav and logrotate if not installed
if [[ $installed_version = "4.0."* ]] || [[ $installed_version = "4.1."* ]]
then
2017-07-21 14:56:41 +02:00
webdav_port=$(ynh_find_port 8080)
ynh_app_setting_set seafile webdav_port $webdav_port
# Disallow port that was used by old seafile client
ccnet_port=$(ynh_app_setting_get $app ccnet_port)
seafile_port=$(ynh_app_setting_get $app seafile_port)
2017-07-21 14:56:41 +02:00
yunohost firewall disallow Both $ccnet_port
yunohost firewall disallow Both $seafile_port
# Add webdav config
2017-07-21 14:56:41 +02:00
cp ../conf/seafdav.conf $final_path/conf/seafdav.conf
ynh_replace_string WEBDAV_PORT $webdav_port $final_path/conf/seafdav.conf
# Add sso config to unprotect domain.tld/seafdav in /etc/ssowat/conf.json.persistent
2017-07-21 14:56:41 +02:00
cp ../conf/add_sso_conf.py $final_path
cp ../conf/add_sso_conf_webdav.py $final_path
cp ../conf/remove_sso_conf.py $final_path
python $final_path/add_sso_conf_webdav.py
# Update seafile config
2017-07-21 14:56:41 +02:00
echo 'COMPRESS_URL = MEDIA_URL' | tee -a $final_path/conf/seahub_settings.py
echo "STATIC_URL = MEDIA_URL + 'assets/'" | tee -a $final_path/conf/seahub_settings.py
# Add logrotate
2017-07-21 14:56:41 +02:00
ynh_use_logrotate $final_path/logs/seaf-server.log
ynh_use_logrotate $final_path/logs/ccnet.log
fi
2017-01-05 23:24:32 +01:00
# Update seahub config for old version to version 5.0.4
2017-07-21 14:56:41 +02:00
if [[ $(grep -c "LOGIN_URL" $final_path/conf/seahub_settings.py) == 0 ]]
2017-01-05 23:24:32 +01:00
then
2017-10-14 10:10:49 +02:00
echo "LOGIN_URL = '$path/accounts/login/'" | tee -a $final_path/conf/seahub_settings.py
2017-01-05 23:24:32 +01:00
fi
2017-07-21 14:56:41 +02:00
# Fix local warning
ynh_replace_string en_US.UTF-8 $LANG $final_path/seafile-server-$seafile_version/seahub.sh
2017-09-30 15:07:56 +02:00
# Config nginx
config_nginx
# Update init file
cp ../conf/seafile-server /etc/init.d
ynh_replace_string SEAHUB_PORT $seahub_port /etc/init.d/seafile-server
ynh_replace_string SEAFILE_DIR $final_path /etc/init.d/seafile-server
2017-09-30 18:14:22 +02:00
ynh_replace_string SEAFILE_USER $seafile_user /etc/init.d/seafile-server
2017-09-30 15:07:56 +02:00
chmod +x /etc/init.d/seafile-server
systemctl daemon-reload
# restore correct permissions
2017-07-21 14:56:41 +02:00
chown -R $seafile_user:$seafile_user $final_path
# delete seafile cache
2017-07-21 14:56:41 +02:00
rm -rf /tmp/seahub_cache
# restart seafile server
2017-07-21 14:56:41 +02:00
systemctl start seafile-server.service
# remove old version files
2017-07-21 14:56:41 +02:00
rm -f $final_path/installed/seafile-server_${installed_version}*.tar*
rm -f $final_path/seafile-server_${installed_version}_$architecture
# store new installed version
2017-01-05 23:24:32 +01:00
ynh_app_setting_set $app installed_version $seafile_version
2017-07-21 14:56:41 +02:00
# Reload nginx
systemctl reload nginx.service