diff --git a/README.md b/README.md index 4d9c158..e7ba49c 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,15 @@ It shall NOT be edited by hand. ## Overview -XMPP gateway for the IRC network +XMPP gateway for the IRC network. Needs Metronome. + **Shipped version:** 8.3~ynh3 ## Documentation and resources -- Official app website: -- Official admin documentation: -- Upstream app code repository: +- Official app website: +- Official admin documentation: +- Upstream app code repository: - YunoHost Store: - Report a bug: diff --git a/README_es.md b/README_es.md index 5be99ef..d2b2394 100644 --- a/README_es.md +++ b/README_es.md @@ -16,14 +16,15 @@ No se debe editar a mano. ## Descripción general -XMPP gateway for the IRC network +XMPP gateway for the IRC network. Needs Metronome. + **Versión actual:** 8.3~ynh3 ## Documentaciones y recursos -- Sitio web oficial: -- Documentación administrador oficial: -- Repositorio del código fuente oficial de la aplicación : +- Sitio web oficial: +- Documentación administrador oficial: +- Repositorio del código fuente oficial de la aplicación : - Catálogo YunoHost: - Reportar un error: diff --git a/README_eu.md b/README_eu.md index f95293d..a7ed5fa 100644 --- a/README_eu.md +++ b/README_eu.md @@ -16,14 +16,15 @@ EZ editatu eskuz. ## Aurreikuspena -XMPP gateway for the IRC network +XMPP gateway for the IRC network. Needs Metronome. + **Paketatutako bertsioa:** 8.3~ynh3 ## Dokumentazioa eta baliabideak -- Aplikazioaren webgune ofiziala: -- Administratzaileen dokumentazio ofiziala: -- Jatorrizko aplikazioaren kode-gordailua: +- Aplikazioaren webgune ofiziala: +- Administratzaileen dokumentazio ofiziala: +- Jatorrizko aplikazioaren kode-gordailua: - YunoHost Denda: - Eman errore baten berri: diff --git a/README_fr.md b/README_fr.md index 6daa265..5ef96ab 100644 --- a/README_fr.md +++ b/README_fr.md @@ -16,14 +16,15 @@ Il NE doit PAS être modifié à la main. ## Vue d’ensemble -XMPP gateway for the IRC network +XMPP gateway for the IRC network. Needs Metronome. + **Version incluse :** 8.3~ynh3 ## Documentations et ressources -- Site officiel de l’app : -- Documentation officielle de l’admin : -- Dépôt de code officiel de l’app : +- Site officiel de l’app : +- Documentation officielle de l’admin : +- Dépôt de code officiel de l’app : - YunoHost Store : - Signaler un bug : diff --git a/README_gl.md b/README_gl.md index c155820..5f3ad3a 100644 --- a/README_gl.md +++ b/README_gl.md @@ -16,14 +16,15 @@ NON debe editarse manualmente. ## Vista xeral -XMPP gateway for the IRC network +XMPP gateway for the IRC network. Needs Metronome. + **Versión proporcionada:** 8.3~ynh3 ## Documentación e recursos -- Web oficial da app: -- Documentación oficial para admin: -- Repositorio de orixe do código: +- Web oficial da app: +- Documentación oficial para admin: +- Repositorio de orixe do código: - Tenda YunoHost: - Informar dun problema: diff --git a/README_zh_Hans.md b/README_zh_Hans.md index b6c0dcb..e4b64a7 100644 --- a/README_zh_Hans.md +++ b/README_zh_Hans.md @@ -16,14 +16,15 @@ ## 概况 -XMPP gateway for the IRC network +XMPP gateway for the IRC network. Needs Metronome. + **分发版本:** 8.3~ynh3 ## 文档与资源 -- 官方应用网站: -- 官方管理文档: -- 上游应用代码库: +- 官方应用网站: +- 官方管理文档: +- 上游应用代码库: - YunoHost 商店: - 报告 bug: diff --git a/conf/biboumi.cfg.lua b/conf/metronome.cfg.lua similarity index 100% rename from conf/biboumi.cfg.lua rename to conf/metronome.cfg.lua diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 4f147e0..b3b4312 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1 +1 @@ -XMPP gateway for the IRC network \ No newline at end of file +XMPP gateway for the IRC network. Needs Metronome. diff --git a/manifest.toml b/manifest.toml index c6368a8..71e6c85 100644 --- a/manifest.toml +++ b/manifest.toml @@ -1,3 +1,5 @@ +#:schema https://raw.githubusercontent.com/YunoHost/apps/master/schemas/manifest.v2.schema.json + packaging_format = 2 id = "biboumi" @@ -11,9 +13,9 @@ maintainers = ["pitchum"] [upstream] license = "Zlib" -website = "https://biboumi.louiz.org/" -admindoc = "https://lab.louiz.org/louiz/biboumi/blob/8.3/doc/biboumi.1.rst" -code = "https://lab.louiz.org/louiz/biboumi" +website = "https://biboumi.louiz.org" +admindoc = "https://doc.biboumi.louiz.org" +code = "https://github.com/louiz/biboumi" [integration] yunohost = ">= 11.2" @@ -45,7 +47,16 @@ ram.runtime = "50M" [resources.install_dir] + [resources.data_dir] + dir = "/var/lib/__APP__" + [resources.permissions] [resources.apt] - packages = "metronome, biboumi" + packages = [ "biboumi", ] + + packages_from_raw_bash = """ + if [[ $YNH_DEBIAN_VERSION == "bullseye" ]]; then + echo "metronome"; + fi + """ diff --git a/scripts/_common.sh b/scripts/_common.sh index 944a65e..1b0062a 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -8,6 +8,22 @@ # PERSONAL HELPERS #================================================= +_get_metronome_config_dir() { + if [[ $YNH_DEBIAN_VERSION == "bullseye" ]]; then + echo "/etc/metronome/conf.d" + return 0 + fi + + # multi_instance=false, there's only one + metronome_app=$(yunohost app list --json | jq -r '.apps[] | select(.id == "metronome") | .id') + if [[ -z "${metronome_app:-}" ]]; then + ynh_print_warn --message="Could not find any metronome app!" + return 1 + fi + + echo "$(ynh_app_setting_get --app="$metronome_app" --key="install_dir")/conf/conf.d" +} + #================================================= # EXPERIMENTAL HELPERS #================================================= diff --git a/scripts/backup b/scripts/backup index 3d5ab08..3804255 100755 --- a/scripts/backup +++ b/scripts/backup @@ -1,7 +1,5 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= @@ -29,7 +27,9 @@ ynh_backup --src_path="/etc/$app" ynh_backup --src_path="/var/lib/$app" -ynh_backup --src_path="/etc/metronome/conf.d/$app.cfg.lua" +ynh_backup --src_path="$(_get_metronome_config_dir)/$app.cfg.lua" + +ynh_backup --src_path="/var/log/$app/" #================================================= # END OF SCRIPT diff --git a/scripts/install b/scripts/install index a7b1417..1b6fb56 100755 --- a/scripts/install +++ b/scripts/install @@ -1,7 +1,5 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= @@ -9,115 +7,71 @@ source _common.sh source /usr/share/yunohost/helpers -#================================================= -# RETRIEVE ARGUMENTS FROM THE MANIFEST -#================================================= - -shared_secret="$(ynh_string_random 25)" -admin_jid="${admin}@$app.${domain}" - #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= -#REMOVEME? ynh_script_progression --message="Validating installation parameters..." -if dpkg --compare-versions "$(uname -r)" "<=" "4.0" -then +if dpkg --compare-versions "$(uname -r)" "<=" "4.0"; then ynh_die "Upgrade your kernel first. Unsupported version: $(uname -r)" fi #================================================= -# STORE SETTINGS FROM MANIFEST -#================================================= -ynh_script_progression --message="Storing installation settings..." - -ynh_app_setting_set --app=$app --key=shared_secret --value=$shared_secret -ynh_app_setting_set --app=$app --key=admin_jid --value=$admin_jid - -#================================================= -# INSTALL DEPENDENCIES +# INITIALIZE AND STORE SETTINGS #================================================= -ynh_systemd_action --service_name=$app --action="stop" --log_path="systemd" +shared_secret="$(ynh_string_random 25)" +ynh_app_setting_set --app="$app" --key="shared_secret" --value="$shared_secret" -#================================================= -# SPECIFIC SETUP -#================================================= -# CONFIGURE METRONOME -#================================================= -ynh_script_progression --message="Configuring Metronome..." - -# Add metronome component -ynh_add_config --template="../conf/biboumi.cfg.lua" --destination="/etc/metronome/conf.d/$app.cfg.lua" - -chown metronome:metronome "/etc/metronome/conf.d/$app.cfg.lua" - -ynh_systemd_action --service_name=metronome --action="restart" +admin_jid="${admin}@${app}.${domain}" +ynh_app_setting_set --app="$app" --key="admin_jid" --value="$admin_jid" #================================================= # CREATE DATA DIRECTORY #================================================= -ynh_script_progression --message="Creating a data directory..." - -mkdir -p /var/lib/$app +ynh_script_progression --message="Setting up the data directory..." # Set permissions to app files chown -R _biboumi:_biboumi "/var/lib/$app" #================================================= -# ADD A CONFIGURATION +# APP INITIAL CONFIGURATION #================================================= -ynh_script_progression --message="Adding a configuration file..." +ynh_script_progression --message="Adding $app's configuration files..." --weight=1 +# Stop the service started by apt install +ynh_systemd_action --service_name="$app" --action="stop" --log_path="systemd" + +# Add metronome component +metronome_config_dir=$(_get_metronome_config_dir) +ynh_add_config --template="metronome.cfg.lua" --destination="$metronome_config_dir/$app.cfg.lua" +chown metronome:metronome "$metronome_config_dir/$app.cfg.lua" +ynh_systemd_action --service_name="metronome" --action="restart" + +# Add biboumi configuration mkdir -p "/etc/$app/" - -ynh_add_config --template="../conf/biboumi.cfg" --destination="/etc/$app/$app.cfg" - +ynh_add_config --template="biboumi.cfg" --destination="/etc/$app/$app.cfg" chown -R _biboumi:_biboumi "/etc/$app/$app.cfg" #================================================= -# SETUP SYSTEMD +# SYSTEM CONFIGURATION #================================================= -ynh_script_progression --message="Configuring a systemd service..." +ynh_script_progression --message="Adding system configurations related to $app..." --weight=1 # Create a dedicated systemd config -systemctl enable $app.service --quiet - -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Configuring log rotation..." - -mkdir -p /var/log/$app -chown -R _biboumi:_biboumi "/var/log/$app" +systemctl enable "$app.service" --quiet +yunohost service add "$app" --description="XMPP gateway for the IRC network" --log="/var/log/$app/$app.log" # Use logrotate to manage application logfile(s) ynh_use_logrotate - -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." - -yunohost service add $app --description="XMPP gateway for the IRC network" --log="/var/log/$app/$app.log" +chown -R _biboumi:_biboumi "/var/log/$app" #================================================= # START SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." +ynh_script_progression --message="Starting $app's systemd service..." --weight=1 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --line_match="Started Biboumi" --log_path="systemd" - -#================================================= -# SETUP SSOWAT -#================================================= -ynh_script_progression --message="Configuring permissions..." - -# Prevent conflict with other apps on the same domain -ynh_app_setting_set --app=$app --key=no_sso --value=1 +ynh_systemd_action --service_name="$app" --action="start" --line_match="Authenticated with the XMPP server" --log_path="/var/log/$app/$app.log" #================================================= # END OF SCRIPT diff --git a/scripts/remove b/scripts/remove index 884633d..7bf9ab5 100755 --- a/scripts/remove +++ b/scripts/remove @@ -1,7 +1,5 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= @@ -10,37 +8,22 @@ source _common.sh source /usr/share/yunohost/helpers #================================================= -# STANDARD REMOVE -#================================================= -# REMOVE SERVICE INTEGRATION IN YUNOHOST +# REMOVE SYSTEM CONFIGURATIONS #================================================= +ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 # Remove the service from the list of services known by YunoHost (added from `yunohost service add`) -if ynh_exec_warn_less yunohost service status $app >/dev/null -then - ynh_script_progression --message="Removing $app service integration..." - yunohost service remove $app +if ynh_exec_warn_less yunohost service status "$app" >/dev/null; then + yunohost service remove "$app" fi -#================================================= -# STOP AND REMOVE SERVICE -#================================================= -ynh_script_progression --message="Stopping and removing the systemd service..." - # Remove the dedicated systemd config -ynh_systemd_action --service_name=$app --action="stop" --line_match="Stopped Biboumi" --log_path="systemd" -systemctl disable $app.service --quiet - -#================================================= -# REMOVE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Removing logrotate configuration..." +ynh_systemd_action --service_name="$app" --action="stop" --log_path="systemd" +systemctl disable "$app.service" --quiet # Remove the app-specific logrotate config ynh_remove_logrotate -#================================================= -# SPECIFIC REMOVE #================================================= # REMOVE VARIOUS FILES #================================================= @@ -52,10 +35,8 @@ ynh_secure_remove --file="/var/lib/$app" # Remove a directory securely ynh_secure_remove --file="/etc/$app" -# Remove the log files - # Remove Metronome component -ynh_secure_remove --file="/etc/metronome/conf.d/$app.cfg.lua" +ynh_secure_remove --file="$(_get_metronome_config_dir)/$app.cfg.lua" ynh_systemd_action --action=restart --service_name=metronome #================================================= diff --git a/scripts/restore b/scripts/restore index b454958..11a6d26 100755 --- a/scripts/restore +++ b/scripts/restore @@ -1,7 +1,5 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= @@ -15,56 +13,50 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Validating restoration parameters..." -if dpkg --compare-versions "$(uname -r)" "<=" "4.0" -then +if dpkg --compare-versions "$(uname -r)" "<=" "4.0"; then ynh_die "Upgrade your kernel first. Unsupported version: $(uname -r)" fi +#================================================= +# RESTORE THE DATA DIRECTORY +#================================================= +ynh_script_progression --message="Restoring the data directory..." --weight=1 + +ynh_restore_file --origin_path="/var/lib/$app" +chown -R _biboumi:_biboumi "/var/lib/$app" + #================================================= # RESTORE VARIOUS FILES #================================================= ynh_script_progression --message="Restoring various files..." ynh_restore_file --origin_path="/etc/$app" -chown -R _biboumi:_biboumi /etc/$app +chown -R _biboumi:_biboumi "/etc/$app" -ynh_restore_file --origin_path="/var/lib/$app" -chown -R _biboumi:_biboumi /var/lib/$app - -ynh_restore_file --origin_path="/etc/metronome/conf.d/$app.cfg.lua" -chown metronome:metronome "/etc/metronome/conf.d/$app.cfg.lua" +metronome_config_dir=$(_get_metronome_config_dir) +ynh_restore_file --origin_path="$metronome_config_dir/$app.cfg.lua" +chown metronome:metronome "$metronome_config_dir/$app.cfg.lua" ynh_systemd_action --service_name=metronome --action="restart" #================================================= -# RESTORE SYSTEMD +# RESTORE SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression --message="Restoring the systemd configuration..." +ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 -systemctl enable $app.service --quiet - -#================================================= -# RESTORE THE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the logrotate configuration..." - -mkdir -p /var/log/$app -chown -R _biboumi:_biboumi "/var/log/$app" +systemctl enable "$app.service" --quiet +yunohost service add "$app" --description="XMPP gateway for the IRC network" --log="/var/log/$app/$app.log" ynh_restore_file --origin_path="/etc/logrotate.d/$app" -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." - -yunohost service add $app --description="XMPP gateway for the IRC network" --log="/var/log/$app/$app.log" +ynh_restore_file --origin_path="/var/log/$app/" +chown -R _biboumi:_biboumi "/var/log/$app" #================================================= -# START SYSTEMD SERVICE +# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." +ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --line_match="Started Biboumi" --log_path="systemd" +ynh_systemd_action --service_name="$app" --action="start" --line_match="Authenticated with the XMPP server" --log_path="/var/log/$app/$app.log" #================================================= # END OF SCRIPT diff --git a/scripts/upgrade b/scripts/upgrade index 8e2e370..eaa512f 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -1,7 +1,5 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= @@ -9,41 +7,17 @@ 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..." +ynh_script_progression --message="Stopping $app's systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="stop" --line_match="Stopped Biboumi" --log_path="systemd" - -#================================================= -# SPECIFIC UPGRADE -#================================================= -# UPGRADE METRONOME COMPONENT -#================================================= -ynh_script_progression --message="Upgrading Metronome component..." - -# Upgrade metronome component -ynh_add_config --template="../conf/biboumi.cfg.lua" --destination="/etc/metronome/conf.d/$app.cfg.lua" - -chown metronome:metronome "/etc/metronome/conf.d/$app.cfg.lua" - -ynh_systemd_action --service_name=metronome --action="restart" +ynh_systemd_action --service_name="$app" --action="stop" --log_path="systemd" #================================================= # CREATE DIRECTORIES #================================================= -ynh_script_progression --message="Creating a data directory..." - -mkdir -p /var/lib/$app +ynh_script_progression --message="Setting up the data directory..." # Set permissions to app files chown -R _biboumi:_biboumi "/var/lib/$app" @@ -51,46 +25,37 @@ chown -R _biboumi:_biboumi "/var/lib/$app" #================================================= # UPDATE A CONFIG FILE #================================================= -ynh_script_progression --message="Updating a configuration file..." +ynh_script_progression --message="Updating $app's configuration files..." --weight=1 -ynh_add_config --template="../conf/biboumi.cfg" --destination="/etc/$app/$app.cfg" +# Upgrade metronome component +metronome_config_dir=$(_get_metronome_config_dir) +ynh_add_config --template="metronome.cfg.lua" --destination="$metronome_config_dir/$app.cfg.lua" +chown metronome:metronome "$metronome_config_dir/$app.cfg.lua" +ynh_systemd_action --service_name=metronome --action="restart" +# Upgrade biboumi configuration +ynh_add_config --template="biboumi.cfg" --destination="/etc/$app/$app.cfg" chown -R _biboumi:_biboumi "/etc/$app/$app.cfg" #================================================= -# SETUP SYSTEMD +# REAPPLY SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression --message="Upgrading systemd configuration..." +ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1 # Create a dedicated systemd config -systemctl enable $app.service --quiet - -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Upgrading logrotate configuration..." - -mkdir -p /var/log/$app -chown -R _biboumi:_biboumi "/var/log/$app" +systemctl enable "$app.service" --quiet +yunohost service add "$app" --description="XMPP gateway for the IRC network" --log="/var/log/$app/$app.log" # Use logrotate to manage app-specific logfile(s) ynh_use_logrotate --non-append - -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." - -yunohost service add $app --description="XMPP gateway for the IRC network" --log="/var/log/$app/$app.log" +chown -R _biboumi:_biboumi "/var/log/$app" #================================================= # START SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." +ynh_script_progression --message="Starting $app's systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --line_match="Started Biboumi" --log_path="systemd" +ynh_systemd_action --service_name="$app" --action="start" --line_match="Authenticated with the XMPP server" --log_path="/var/log/$app/$app.log" #================================================= # END OF SCRIPT diff --git a/tests.toml b/tests.toml index eb73b8d..d4e8ac1 100644 --- a/tests.toml +++ b/tests.toml @@ -1,3 +1,11 @@ +#:schema https://raw.githubusercontent.com/YunoHost/apps/master/schemas/tests.v1.schema.json + test_format = 1.0 -[default] \ No newline at end of file +[default] + + preinstall = """ + if cat /etc/os-release | grep --quiet bookworm 2>/dev/null; then + yunohost app install --force https://github.com/yunoHost-Apps/metronome_ynh/tree/testing -a 'domain=domain.tld&init_main_permission=visitors' + fi + """