From a470282799d7473b6cada1732560f379c1f84791 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 4 Sep 2022 23:58:20 +0200 Subject: [PATCH] More example_ynh --- .github/workflows/updater.sh | 2 +- doc/DESCRIPTION_fr.md | 6 +++--- manifest.json | 2 +- scripts/backup | 2 +- scripts/install | 17 ++++------------- scripts/remove | 5 +---- scripts/restore | 26 +++++++++----------------- scripts/upgrade | 22 +++++++--------------- 8 files changed, 27 insertions(+), 55 deletions(-) diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh index f3c6759..f1b3108 100644 --- a/.github/workflows/updater.sh +++ b/.github/workflows/updater.sh @@ -18,7 +18,7 @@ current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]') # Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1) -assets="https://github.com/mautrix/signal/archive/refs/tags/$version.tar.gz" +assets="https://github.com/$repo/archive/refs/tags/$version.tar.gz" # Later down the script, we assume the version has only digits and dots # Sometimes the release name starts with a "v", so let's filter it out. diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md index 55baa9e..b338f91 100644 --- a/doc/DESCRIPTION_fr.md +++ b/doc/DESCRIPTION_fr.md @@ -1,4 +1,4 @@ -Une passerelle entre Matrix et Signal empaquetée comme un service YunoHost. Les messages, médias et notifications sont relayées entre un compte Signal et un compte Matrix. -La passerelle ["Mautrix-Signal"](https://docs.mau.fi/bridges/python/signal/index.html) consiste en un Service d'Application Matrix-Synapse et repose sur une base-de-données postgresql. C'est pourquoi [Synapse for YunoHost](https://github.com/YunoHost-Apps/synapse_ynh) doit être préalablemnet installé. +Une passerelle entre Matrix et Signal empaquetée comme un service YunoHost. Les messages, médias et notifications sont relayées entre un compte Signal et un compte Matrix. +La passerelle ["Mautrix-Signal"](https://docs.mau.fi/bridges/python/signal/index.html) consiste en un Service d'Application Matrix-Synapse et repose sur une base-de-données postgresql. C'est pourquoi [Synapse for YunoHost](https://github.com/YunoHost-Apps/synapse_ynh) doit être préalablemnet installé. -** Attention : sauvegardez et restaurez toujours les deux applications Yunohost matrix-synapse et mautrix_signal en même temps!** +** Attention : sauvegardez et restaurez toujours les deux applications Yunohost matrix-synapse et mautrix_signal en même temps!** diff --git a/manifest.json b/manifest.json index 75dde7e..c77198b 100644 --- a/manifest.json +++ b/manifest.json @@ -10,7 +10,7 @@ "url": "https://github.com/mautrix/signal", "upstream": { "license": "AGPL-3.0-or-later", - "userdoc": "https://docs.mau.fi/bridges/python/signal/index.html ", + "userdoc": "https://docs.mau.fi/bridges/python/signal/index.html", "code": "https://github.com/mautrix/signal" }, "license": "AGPL-3.0-or-later", diff --git a/scripts/backup b/scripts/backup index 29e1846..15cfb27 100755 --- a/scripts/backup +++ b/scripts/backup @@ -49,7 +49,7 @@ ynh_backup --src_path="$final_path" # BACKUP LOGROTATE #================================================= -ynh_backup --src_path="/var/log/$app" +ynh_backup --src_path="/etc/logrotate.d/$app" #================================================= # BACKUP SYSTEMD diff --git a/scripts/install b/scripts/install index 556c412..2a79b5c 100755 --- a/scripts/install +++ b/scripts/install @@ -92,8 +92,6 @@ ynh_app_setting_set --app=$app --key=port --value=$port ynh_script_progression --message="Installing dependencies..." --weight=10 ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies - -ynh_script_progression --message="Installing dependencies..." --weight=10 ynh_install_extra_app_dependencies --repo="https://updates.signald.org unstable main" --package="$extra_dependencies" --key="https://updates.signald.org/apt-signing-key.asc" sleep 3 @@ -148,20 +146,14 @@ chown $app:$app "$final_path/config.yaml" #================================================= # INSTALL MAUTRIX-BRIDGE PYTHON MODULE #================================================= -ynh_script_progression --message="Configuring python3 virtual environment" --weight=6 +ynh_script_progression --message="Installing Mautrix-Bridge Python Module..." --weight=6 mkdir -p /var/log/$app # Configure Mautrix-Bridge python3 -m venv $final_path export HOME=$final_path $final_path/bin/pip3 install --upgrade pip setuptools wheel - -ynh_script_progression --message="Installing Bridge with pip" --weight=6 - -# Pre-compiled python-olm to avoid libolm-dev, python3-dev -> does not work for arm -#$final_path/bin/pip3 install --upgrade python-olm --extra-index-url https://gitlab.matrix.org/api/v4/projects/27/packages/pypi/simple -# Build with libolm3 end-to-bridge encryption -$final_path/bin/pip3 install $final_path/src/mautrix-signal.tar.gz[metrics,e2be,formattednumbers,qrlink,stickers] +$final_path/bin/pip3 install --upgrade $final_path/src/mautrix-signal.tar.gz[metrics,e2be,formattednumbers,qrlink,stickers] #================================================= # REGISTER SYNAPSE APP-SERVICE @@ -169,8 +161,7 @@ $final_path/bin/pip3 install $final_path/src/mautrix-signal.tar.gz[metrics,e2be, ynh_script_progression --message="Registering Synapse app-service" --weight=1 $final_path/bin/python3 -m mautrix_signal -g -c $final_path/config.yaml -r /etc/matrix-$synapse_instance/app-service/$app.yaml - -/opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die "Synapse can't restart with the appservice configuration" +/opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die --message="Synapse can't restart with the appservice configuration" chown -R $app:$app "$final_path" ynh_store_file_checksum --file="/etc/matrix-$synapse_instance/app-service/$app.yaml" @@ -202,7 +193,7 @@ chown -R $app:$app /var/log/$app #================================================= ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 -yunohost service add $app --description="Bridging Signal and Matrix messages" --log=/var/log/$app/$app.log +yunohost service add $app --description="$app daemon for bridging Signal and Matrix messages" --log=/var/log/$app/$app.log #================================================= # START SYSTEMD SERVICE diff --git a/scripts/remove b/scripts/remove index 8a499ed..5c91fdd 100755 --- a/scripts/remove +++ b/scripts/remove @@ -17,11 +17,8 @@ ynh_script_progression --message="Loading installation settings..." --weight=1 app=$YNH_APP_INSTANCE_NAME botname=$(ynh_app_setting_get --app=$app --key=botname) -botadmin=$(ynh_app_setting_get --app=$app --key=botadmin) -port=$(ynh_app_setting_get --app=$app --key=port) synapse_instance=$(ynh_app_setting_get --app=$app --key=synapse_instance) server_name=$(ynh_app_setting_get --app=$app --key=server_name) -domain=$(ynh_app_setting_get --app=$app --key=domain) db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name final_path=$(ynh_app_setting_get --app=$app --key=final_path) @@ -96,7 +93,7 @@ ynh_secure_remove --file="$signald_exe" # Remove a directory securely ynh_secure_remove --file="/etc/matrix-$synapse_instance/app-service/$app.yaml" -/opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die "Synapse can't restart with the appservice configuration" +/opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die --message="Synapse can't restart with the appservice configuration" # Remove the log files ynh_secure_remove --file="/var/log/$app" diff --git a/scripts/restore b/scripts/restore index c679d2f..a99f35b 100755 --- a/scripts/restore +++ b/scripts/restore @@ -72,8 +72,7 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$final_path" chmod 750 "$final_path" -chown $app:$app "$final_path" -chmod -R 750 "$final_path" +chmod -R o-rwx "$final_path" chown -R $app:$app "$final_path" #================================================= @@ -83,10 +82,9 @@ chown -R $app:$app "$final_path" #================================================= ynh_script_progression --message="Reinstalling dependencies..." --weight=1 +# Define and install dependencies ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies -# libolm-dev avoided by pre-compiled python-olm - -ynh_install_extra_app_dependencies --repo="https://updates.signald.org unstable main" --package="$extra_dependencies" --key="https://updates.signald.org/apt-signing-key.asc" +ynh_exec_warn_less ynh_install_extra_app_dependencies --repo="https://updates.signald.org unstable main" --package="$extra_dependencies" --key="https://updates.signald.org/apt-signing-key.asc" #================================================= # RESTORE THE POSTGRESQL DATABASE @@ -99,22 +97,18 @@ ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd ynh_psql_execute_file_as_root --file="./db.sql" --database=$db_name #================================================= -# RESTORE MAUTRIX-BRIDGE PYTHON MODULE +# INSTALL MAUTRIX-BRIDGE PYTHON MODULE #================================================= +ynh_script_progression --message="Installing Mautrix-Bridge Python Module..." --weight=6 -ynh_restore_file --origin_path="/var/log/$app" -#mkdir -p /var/log/$app -# Configure Mautrix-Bridge python3 -m venv $final_path export HOME=$final_path $final_path/bin/pip3 install --upgrade pip setuptools wheel -# Pre-compiled python-olm to avoid libolm-dev, python3-dev -#$final_path/bin/pip3 install --upgrade python-olm --extra-index-url https://gitlab.matrix.org/api/v4/projects/27/packages/pypi/simple - #================================================= # REGISTER SYNAPSE APP-SERVICE #================================================= +ynh_script_progression --message="Registering Synapse app-service" --weight=1 $final_path/bin/python3 -m mautrix_signal -g -c $final_path/config.yaml -r /etc/matrix-$synapse_instance/app-service/$app.yaml /opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die "Synapse can't restart with the appservice configuration" @@ -140,23 +134,21 @@ systemctl enable $app.service --quiet #================================================= ynh_script_progression --message="Restoring the logrotate configuration..." --weight=1 -ynh_use_logrotate -chmod -R 600 "/var/log/$app" -chmod 700 "/var/log/$app" -chown -R $app:$app /var/log/$app +ynh_restore_file --origin_path="/etc/logrotate.d/$app" #================================================= # INTEGRATE SERVICE IN YUNOHOST #================================================= ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 -yunohost service add $app --description="Bridging Signal and Matrix messages" --log="/var/log/$app/$app.log" +yunohost service add $app --description="$app daemon for bridging Signal and Matrix messages" --log="/var/log/$app/$app.log" #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 +# Start a systemd service ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" # Wait until the synapse user is created sleep 30 diff --git a/scripts/upgrade b/scripts/upgrade index f143a25..cfdba78 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -137,33 +137,25 @@ chown $app:$app "$final_path/config.yaml" #================================================= # UPGRADE MAUTRIX-BRIDGE PYTHON MODULE #================================================= -ynh_script_progression --message="Upgrading python3 virtual environment" --weight=6 +ynh_script_progression --message="Upgrading Mautrix-Bridge Python Module..." --weight=2 -mkdir -p /var/log/$app -# Configure Mautrix-Bridge python3 -m venv $final_path export HOME=$final_path $final_path/bin/pip3 install --upgrade pip setuptools wheel - -ynh_script_progression --message="Installing with pip" --weight=6 - -# Pre-compiled python-olm to avoid libolm-dev, python3-dev -> does not work for arm -#$final_path/bin/pip3 install --upgrade python-olm --extra-index-url https://gitlab.matrix.org/api/v4/projects/27/packages/pypi/simple -# Build with libolm3 end-to-bridge encryption $final_path/bin/pip3 install --upgrade $final_path/src/mautrix-signal.tar.gz[metrics,e2be,formattednumbers,qrlink,stickers] #================================================= # REGISTER SYNAPSE APP-SERVICE #================================================= -$final_path/bin/python3 -m mautrix_signal -g -c $final_path/config.yaml -r /etc/matrix-$synapse_instance/app-service/$app.yaml +ynh_script_progression --message="Registering Synapse app-service" --weight=1 +$final_path/bin/python3 -m mautrix_signal -g -c $final_path/config.yaml -r /etc/matrix-$synapse_instance/app-service/$app.yaml /opt/yunohost/matrix-$synapse_instance/update_synapse_for_appservice.sh || ynh_die "Synapse can't restart with the appservice configuration" -# Recalculate and store the checksum of the file for the next upgrade. -ynh_store_file_checksum --file="$final_path/config.yaml" -ynh_store_file_checksum --file="/etc/matrix-$synapse_instance/app-service/$app.yaml" - +# Set permissions on app files chown -R $app:$app "$final_path" +ynh_store_file_checksum --file="/etc/matrix-$synapse_instance/app-service/$app.yaml" +ynh_store_file_checksum --file="$final_path/config.yaml" #================================================= # SETUP SYSTEMD @@ -191,7 +183,7 @@ chown -R $app:$app /var/log/$app #================================================= ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 -yunohost service add $app --description="Bridging Signal and Matrix messages" --log="/var/log/$app/$app.log" +yunohost service add $app --description="$app daemon for bridging Signal and Matrix messages" --log="/var/log/$app/$app.log" #================================================= # START SYSTEMD SERVICE