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
+ """