mirror of
https://github.com/YunoHost-Apps/mautrix_signal_ynh.git
synced 2024-09-03 19:46:07 +02:00
251f926990
This is used for communicating with synapse. Note that previously, the setting wasn't being saved correctly on install.
123 lines
4.4 KiB
Bash
Executable file
123 lines
4.4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
#=================================================
|
|
# GENERIC START
|
|
#=================================================
|
|
# IMPORT GENERIC HELPERS
|
|
#=================================================
|
|
|
|
source _common.sh
|
|
source /usr/share/yunohost/helpers
|
|
|
|
# Satisfy shellcheck, those variables are known when starting the script:
|
|
# shellcheck disable=SC2154
|
|
echo From manifest: "$synapsenumber $bot_synapse_adm", \
|
|
From yunohost: "$app $install_dir" > /dev/null
|
|
|
|
#=================================================
|
|
# INITIALIZE AND STORE SETTINGS
|
|
#=================================================
|
|
|
|
if [[ -z "$botusers" ]] || [ "$botusers" == "admin" ]; then
|
|
if_botusers="# "
|
|
else
|
|
if_botusers=""
|
|
fi
|
|
|
|
# ToDo check (in manifest?) if the selected synapse instance is not already connected to a mautrix_bridge bridge
|
|
if [ "$synapsenumber" -eq "1" ]
|
|
then
|
|
synapse_instance="synapse"
|
|
else
|
|
synapse_instance="synapse__$synapsenumber"
|
|
fi
|
|
|
|
# Convert user choice boolean from the manifest into a config value
|
|
if [ "$enable_relaybot" -eq "1" ]
|
|
then
|
|
enable_relaybot="true"
|
|
else
|
|
enable_relaybot="false"
|
|
fi
|
|
|
|
if [ "$encryption" -eq "1" ]
|
|
then
|
|
encryption="true"
|
|
else
|
|
encryption="false"
|
|
fi
|
|
|
|
server_name=$(ynh_app_setting_get --app "$synapse_instance" --key server_name)
|
|
domain=$(ynh_app_setting_get --app "$synapse_instance" --key domain)
|
|
mautrix_version=$(ynh_app_upstream_version)
|
|
|
|
ynh_app_setting_set --app="$app" --key=bot_synapse_adm --value="$bot_synapse_adm"
|
|
ynh_app_setting_set --app="$app" --key=encryption --value="$encryption"
|
|
ynh_app_setting_set --app="$app" --key=enable_relaybot --value="$enable_relaybot"
|
|
ynh_app_setting_set --app="$app" --key=synapse_instance --value="$synapse_instance"
|
|
ynh_app_setting_set --app="$app" --key=server_name --value="$server_name"
|
|
ynh_app_setting_set --app="$app" --key=domain --value="$domain"
|
|
ynh_app_setting_set --app="$app" --key=mautrix_version --value="$mautrix_version"
|
|
|
|
#=================================================
|
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
|
#=================================================
|
|
ynh_script_progression --message="Setting up source files..." --weight=5
|
|
|
|
# Download, check integrity, uncompress and patch the source from app.src
|
|
ynh_setup_source --dest_dir="$install_dir"
|
|
|
|
chmod 750 "$install_dir"
|
|
chmod -R 750 "$install_dir"
|
|
chown -R "$app":"$app" "$install_dir"
|
|
|
|
#=================================================
|
|
# ADD A CONFIGURATION
|
|
#=================================================
|
|
ynh_script_progression --message="Adding a configuration file..." --weight=2
|
|
|
|
ynh_add_config --template="config.yaml" --destination="$install_dir/config.yaml"
|
|
|
|
chmod 400 "$install_dir/config.yaml"
|
|
chown "$app:$app" "$install_dir/config.yaml"
|
|
|
|
#=================================================
|
|
# REGISTER SYNAPSE APP-SERVICE
|
|
#=================================================
|
|
ynh_script_progression --message="Registering Synapse app-service" --weight=1
|
|
|
|
"$install_dir"/mautrix-signal -g -c "$install_dir"/config.yaml -r "/etc/matrix-$synapse_instance/app-service/$app.yaml"
|
|
/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" "$install_dir"
|
|
ynh_store_file_checksum --file="/etc/matrix-$synapse_instance/app-service/$app.yaml"
|
|
ynh_store_file_checksum --file="$install_dir/config.yaml"
|
|
|
|
#=================================================
|
|
# SYSTEM CONFIGURATION
|
|
#=================================================
|
|
ynh_script_progression --message="Adding system configurations related to $app..." --weight=1
|
|
|
|
# Create a dedicated systemd config
|
|
ynh_add_systemd_config
|
|
yunohost service add "$app" --description="$app daemon for bridging Signal and Matrix messages" --log="/var/log/$app/$app.log"
|
|
|
|
# Use logrotate to manage application logfile(s)
|
|
ynh_use_logrotate --logfile "/var/log/$app/$app.log" --nonappend --specific_user "$app/$app"
|
|
|
|
#=================================================
|
|
# START SYSTEMD SERVICE
|
|
#=================================================
|
|
ynh_script_progression --message="Starting $app's systemd service..." --weight=2
|
|
|
|
# Start a systemd service
|
|
ynh_systemd_action --service_name="$app" --action="start" --log_path="/var/log/$app/$app.log"
|
|
|
|
# Update bot admin status
|
|
set_bot_admin_status
|
|
|
|
#=================================================
|
|
# END OF SCRIPT
|
|
#=================================================
|
|
|
|
ynh_script_progression --message="Installation of $app completed" --last
|