1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/ihatemoney_ynh.git synced 2024-09-03 19:26:15 +02:00
ihatemoney_ynh/scripts/upgrade

142 lines
3.4 KiB
Text
Raw Normal View History

2015-05-02 16:36:51 +02:00
#!/bin/bash
app=$YNH_APP_INSTANCE_NAME
2016-06-18 10:36:18 +02:00
# Installation paths
INSTALL_DIR=/opt/yunohost/ihatemoney
# Source YunoHost helpers
. /usr/share/yunohost/helpers
domain=$(ynh_app_setting_get $app domain)
path=$(ynh_app_setting_get $app path)
is_public=$(ynh_app_setting_get "$app" is_public)
VENV_PY_VERSION=$(echo ${INSTALL_DIR}/venv/bin/python*.*|sed 's/.*python//')
SYSTEM_PY_VERSION=$(readlink /usr/bin/python3|sed s/.*python//)
# Source local utils
source _common.sh
ynh_clean_setup () {
2018-02-17 00:21:07 +01:00
if [ -e /opt/yunohost/ihatemoney/venv-old ]
then
2020-07-01 17:14:15 +02:00
mv /opt/yunohost/ihatemoney/venv{-old,}
2018-02-17 00:21:07 +01:00
fi
}
ynh_abort_if_errors
2018-02-17 00:21:07 +01:00
2015-05-02 16:36:51 +02:00
#----------------------------PRE-UPGRADE MIGRATIONS-----------------------
2016-06-18 10:36:18 +02:00
# MIGRATION: upgrade arg to typed boolean form
if (($is_public != 0)) && (($is_public != 1))
then
if [ $is_public = "No" ];
then
is_public=0
else
is_public=1
fi
ynh_app_setting_set "$app" is_public "$is_public"
fi
# MIGRATION: Switch to a python3 venv
if [[ "$VENV_PY_VERSION" == 2.7 ]]
then
install_apt_dependencies
# Trash py2 venv
2020-07-01 17:14:15 +02:00
mv ${INSTALL_DIR}/venv ${INSTALL_DIR}/venv-old
init_virtualenv
# Clears all cookie-sessions, because py2 & py3 sessions are incompatible
# Relates https://github.com/lepture/flask-wtf/issues/279 (fix unreleased)
2020-07-01 17:14:15 +02:00
new_secret_key=$(ynh_string_random 32)
ynh_replace_string "SECRET_KEY = \".*\"" "SECRET_KEY = \"${new_secret_key}\"" /etc/ihatemoney/ihatemoney.cfg
fi
2015-05-02 16:36:51 +02:00
# MIGRATION: minor Py version has changed ? rebuilt venv
# Useful for Py 3.4 → 3.5, Jessie → Stretch, ynh 2.x → 3.x
if [[ "$VENV_PY_VERSION" != '2.7' ]] && [[ "$VENV_PY_VERSION" != "$SYSTEM_PY_VERSION" ]]
then
2020-07-01 17:14:15 +02:00
mv ${INSTALL_DIR}/venv ${INSTALL_DIR}/venv-old
init_virtualenv
# the static path changed
configure_nginx "$domain" "$path"
fi
#-------------------------------UPGRADE-------------------------
# Upgrade code and dependencies
pip_install
#-----------------------POST-UPGRADE MIGRATIONS-----------------
# Python-MySQL is no longer maintained and does not support Py3
2020-07-01 17:14:15 +02:00
ynh_replace_string "'mysql://" "'mysql+pymysql://" ${ihatemoney_conf_path}
# MIGRATION: Remove old code (from pre-2.x versions, not using pip)
2020-07-01 17:14:15 +02:00
ynh_secure_remove ${INSTALL_DIR}/src
# MIGRATION: change the static path (from pre-2.x versions, not using pip)
if grep -q /opt/yunohost/ihatemoney/src/ /etc/nginx/conf.d/${domain}.d/ihatemoney.conf
then
# the static path changed
configure_nginx "$domain" "$path"
# Supervisor no longer change its directory to src/ dir
configure_supervisor
supervisorctl update
fi
# MIGRATION: new-style settings
if [ -e /etc/ihatemoney/settings.py ]; then
# Strip out the no longer used part of the settings
2020-07-01 17:14:15 +02:00
python2 -c "d = open('/etc/ihatemoney/settings.py').read().replace('try:\n from settings import *\nexcept ImportError:\n pass\n', ''); open('/etc/ihatemoney/settings.py', 'w').write(d)"
# Rename
2020-07-01 17:14:15 +02:00
mv /etc/ihatemoney/settings.py ${ihatemoney_conf_path}
fi
# MIGRATION: Remove no longer used symlink
# (ihatemoney now read its conf by default from /etc/ihatemoney/ihatemoney.cfg)
2020-07-01 17:14:15 +02:00
ynh_secure_remove ${INSTALL_DIR}/src/budget/settings.py
#----------------------------FINALIZATION-----------------------
# Everything went ok ? Let's keep this new venv.
2020-07-01 17:14:15 +02:00
ynh_secure_remove ${INSTALL_DIR}/venv-old
2015-05-02 16:36:51 +02:00
# Restart backend
2020-07-01 17:14:15 +02:00
supervisorctl restart budget
# Reload nginx conf
2020-07-01 17:14:15 +02:00
systemctl reload nginx