#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # CHECK VERSION #================================================= upgrade_type=$(ynh_check_app_version_changed) #================================================= # STANDARD UPGRADE STEPS #================================================= # STOP SYSTEMD SERVICE #================================================= ynh_script_progression --message="Stopping a systemd service..." --weight=1 ynh_systemd_action --service_name=$app --action="stop" --log_path="systemd" #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" fi chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= # SPECIFIC UPGRADE #================================================= # UPGRADE PYTHON DEPENDENCIES #================================================= ynh_script_progression --message="Installing Python dependencies..." --weight=1 pushd $install_dir python3 -m venv venv venv/bin/pip install --upgrade pip venv/bin/pip install -r requirements.txt venv/bin/pip install gunicorn ynh_exec_warn_less venv/bin/pybabel compile -d locales/ mkdir -p /var/log/$app chown -R $app:www-data /var/log/$app chmod o-rwx /var/log/$app cat <> wsgi.py from server import app if __name__ == "__main__": app.run() EOF popd #================================================= # UPDATE A CONFIG FILE #================================================= ynh_script_progression --message="Updating a configuration file..." --weight=1 ynh_add_config --template="../conf/gunicorn.py" --destination="$install_dir/gunicorn.py" ynh_add_config --template="../conf/settings.py" --destination="$install_dir/settings.py" for price in $(echo $prices | sed "s/,/ /g"); do frequency=$(echo $price | cut -d/ -f1) currency=$(echo $price | cut -d/ -f2) price_id=$(echo $price | cut -d/ -f3) echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$install_dir/settings.py" done ynh_store_file_checksum --file="$install_dir/settings.py" #================================================= # SETUP SYSTEMD #================================================= ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 # Create a dedicated NGINX config ynh_add_nginx_config # Create a dedicated systemd config ynh_add_systemd_config yunohost service add $app --description="Simple donation form" --log="/var/log/$app/$app.log" #================================================= # GENERIC FINALIZATION #================================================= # SECURE FILES AND DIRECTORIES #================================================= ynh_script_progression --message="Securing files and directories..." --weight=1 # Set permissions on app files chown -R $app:www-data $install_dir chmod o=--- $install_dir #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Upgrade of $app completed" --last