#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers upgrade_type=$(ynh_check_app_version_changed) #================================================= # STANDARD UPGRADE STEPS #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 if [ -e "$install_dir/searx" ]; then tempdir="$(mktemp -d)" mv "$install_dir/searx/settings.yml" "$tempdir/settings.yml" sed -i '1s/^/use_default_settings: true\n\n/' "$tempdir/settings.yml" ynh_secure_remove --file="$install_dir" mkdir "$install_dir" mv "$tempdir/settings.yml" "$install_dir/settings.yml" ynh_secure_remove --file="$tempdir" ynh_store_file_checksum --file="$install_dir/settings.yml" ynh_delete_file_checksum --file="/opt/yunohost/$app/searx/settings.yml" fi ynh_delete_file_checksum --file="etc/nginx_conf.d/$domain/$app.conf" #================================================= # STOP SYSTEMD SERVICE #================================================= ynh_script_progression --message="Stopping a systemd service..." --weight=1 ynh_systemd_action --service_name="uwsgi-app@$app.service" --action="stop" --log_path="/var/log/uwsgi/$app/$app.log" #================================================= # "REBUILD" THE APP (DEPLOY NEW SOURCES, RERUN NPM BUILD...) #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=1 ynh_secure_remove --file="$install_dir/searxng-src" repo_fullpath=$(ynh_read_manifest --manifest_key="upstream.code") commit_sha=$(ynh_read_manifest --manifest_key="resources.sources.main.url" | xargs basename --suffix=".tar.gz") ynh_exec_fully_quiet git clone -n "$repo_fullpath" "$install_dir/searxng-src" pushd "$install_dir/searxng-src" ynh_exec_fully_quiet git checkout "$commit_sha" popd ynh_secure_remove --file="$install_dir/searxng-pyenv" python3 -m venv --system-site-packages "$install_dir/searxng-pyenv" set +o nounset; source "$install_dir/searxng-pyenv/bin/activate"; set -o nounset pip3 install -U pip "setuptools<71.0.0" wheel pyyaml --no-cache-dir ynh_exec_fully_quiet pip3 install -e "$install_dir/searxng-src" fi chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app: "$install_dir" #================================================= # REAPPLY SYSTEM CONFIGURATIONS #================================================= ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1 ynh_add_nginx_config #================================================= # RECONFIGURE THE APP (UPDATE CONF, APPLY MIGRATIONS...) #================================================= # UPDATE A CONFIG FILE #================================================= ynh_script_progression --message="Updating a configuration file..." --weight=1 ynh_add_uwsgi_service #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 ynh_systemd_action --service_name="uwsgi-app@$app.service" --action="start" --line_match="spawned uWSGI master process" --log_path="/var/log/uwsgi/$app/$app.log" #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Upgrade of $app completed" --last