diff --git a/README.md b/README.md index af8244c..3ad680d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ It shall NOT be edited by hand. # Monitorix for YunoHost -[![Integration level](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![Working status](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) +[![Integration level](https://dash.yunohost.org/integration/monitorix.svg)](https://ci-apps.yunohost.org/ci/apps/monitorix/) ![Working status](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![Install Monitorix with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) diff --git a/README_es.md b/README_es.md index 22d3329..d062856 100644 --- a/README_es.md +++ b/README_es.md @@ -5,7 +5,7 @@ No se debe editar a mano. # Monitorix para Yunohost -[![Nivel de integración](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![Estado funcional](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Estado En Mantención](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) +[![Nivel de integración](https://dash.yunohost.org/integration/monitorix.svg)](https://ci-apps.yunohost.org/ci/apps/monitorix/) ![Estado funcional](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Estado En Mantención](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![Instalar Monitorix con Yunhost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) diff --git a/README_eu.md b/README_eu.md index 3ae2075..4ce8255 100644 --- a/README_eu.md +++ b/README_eu.md @@ -5,7 +5,7 @@ EZ editatu eskuz. # Monitorix YunoHost-erako -[![Integrazio maila](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![Funtzionamendu egoera](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Mantentze egoera](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) +[![Integrazio maila](https://dash.yunohost.org/integration/monitorix.svg)](https://ci-apps.yunohost.org/ci/apps/monitorix/) ![Funtzionamendu egoera](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Mantentze egoera](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![Instalatu Monitorix YunoHost-ekin](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) diff --git a/README_fr.md b/README_fr.md index fc3a8e2..252786f 100644 --- a/README_fr.md +++ b/README_fr.md @@ -5,7 +5,7 @@ Il NE doit PAS être modifié à la main. # Monitorix pour YunoHost -[![Niveau d’intégration](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) +[![Niveau d’intégration](https://dash.yunohost.org/integration/monitorix.svg)](https://ci-apps.yunohost.org/ci/apps/monitorix/) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![Installer Monitorix avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) diff --git a/README_gl.md b/README_gl.md index 55a0d45..084a605 100644 --- a/README_gl.md +++ b/README_gl.md @@ -5,7 +5,7 @@ NON debe editarse manualmente. # Monitorix para YunoHost -[![Nivel de integración](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![Estado de funcionamento](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Estado de mantemento](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) +[![Nivel de integración](https://dash.yunohost.org/integration/monitorix.svg)](https://ci-apps.yunohost.org/ci/apps/monitorix/) ![Estado de funcionamento](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Estado de mantemento](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![Instalar Monitorix con YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) diff --git a/README_zh_Hans.md b/README_zh_Hans.md index e31974e..817d256 100644 --- a/README_zh_Hans.md +++ b/README_zh_Hans.md @@ -5,7 +5,7 @@ # YunoHost 上的 Monitorix -[![集成程度](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![工作状态](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![维护状态](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) +[![集成程度](https://dash.yunohost.org/integration/monitorix.svg)](https://ci-apps.yunohost.org/ci/apps/monitorix/) ![工作状态](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![维护状态](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![使用 YunoHost 安装 Monitorix](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) diff --git a/conf/monitorix.conf b/conf/monitorix.conf index aef3c07..ee6869c 100644 --- a/conf/monitorix.conf +++ b/conf/monitorix.conf @@ -538,7 +538,7 @@ secure_log_date_format = %b %e 0 = /var/spool/mail, /var/lib, /var/log, /etc, /tmp 1 = /var/www, /opt/yunohost 2 = /home/yunohost.backup{% for dir in app_data_dirs.split(' ') %}, {{ dir }}{% endfor %} - 3 = {% for dir in home_user_dirs.split(' ') %}{% if loop.index > 1 %}, {% endif %}{{ dir }}{% endfor %} + 3 = {% for dir in home_user_dirs.splitlines() %}{% if loop.index > 1 %}, {% endif %}{{ dir }}{% endfor %} 0 = size diff --git a/manifest.toml b/manifest.toml index 529e70a..c9aaace 100644 --- a/manifest.toml +++ b/manifest.toml @@ -20,7 +20,7 @@ code = "https://github.com/mikaku/Monitorix" cpe = "cpe:2.3:a:fibranet:monitorix" [integration] -yunohost = ">= 11.2.11" +yunohost = ">= 11.2.20" architectures = "all" multi_instance = false ldap = "not_relevant" diff --git a/scripts/_common.sh b/scripts/_common.sh index e59c7f7..b2a61fc 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -45,7 +45,7 @@ load_vars() { # This function is called by the hook in install/upgrade/remove yunohost operation # We we need to ensure that this function the quickest as possible # Note that we don't use the yunohost command intentionally for optimization - if ynh_package_is_installed --package=mysql; then + if ynh_package_is_installed --package=mysql || ynh_package_is_installed --package=mariadb-server; then readonly mysql_installed=true else readonly mysql_installed=false @@ -182,7 +182,7 @@ config_php_fpm() { pool_version=$(echo "$pool_dir_by_version" | cut -d/ -f4) pool_file="/etc/php/$pool_version/fpm/pool.d/${app}_status.conf" if ynh_package_is_installed --package="php$pool_version-fpm"; then - ynh_add_jinja_config --template=_php_status.conf --destination="$pool_file" + ynh_add_config --jinja --template=_php_status.conf --destination="$pool_file" chown root:root "$pool_file" chmod 444 "$pool_file" diff --git a/scripts/change_url b/scripts/change_url index 5048134..4ac7176 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -7,7 +7,6 @@ #================================================= source _common.sh -source experimental_helper.sh source /usr/share/yunohost/helpers load_vars @@ -31,7 +30,7 @@ ynh_change_url_nginx_config # SPECIFIC MODIFICATIONS #================================================= ynh_script_progression --message="Updating a configuration file..." --weight=1 -ynh_add_jinja_config --template=monitorix.conf --destination=/etc/monitorix/monitorix.conf +ynh_add_config --jinja --template=monitorix.conf --destination=/etc/monitorix/monitorix.conf #================================================= # GENERIC FINALISATION diff --git a/scripts/config b/scripts/config index de6aa35..bdf1542 100644 --- a/scripts/config +++ b/scripts/config @@ -7,14 +7,13 @@ source ./_common.sh source /usr/share/yunohost/helpers -source ./experimental_helper.sh ynh_abort_if_errors ynh_app_config_apply() { _ynh_app_config_apply load_vars - ynh_add_jinja_config --template=monitorix.conf --destination="/etc/monitorix/monitorix.conf" + ynh_add_config --jinja --template=monitorix.conf --destination="/etc/monitorix/monitorix.conf" save_vars_current_value } diff --git a/scripts/experimental_helper.sh b/scripts/experimental_helper.sh deleted file mode 100644 index bfdd78d..0000000 --- a/scripts/experimental_helper.sh +++ /dev/null @@ -1,135 +0,0 @@ -# Create a dedicated config file from a jinja template -# -# usage: ynh_add_jinja_config --template="template" --destination="destination" -# | arg: -t, --template= - Template config file to use -# | arg: -d, --destination= - Destination of the config file -# | arg: -i, --ignore_vars= - List separated by space of script variables to ignore and don't pass in the jinja context. -# | This could be useful mainly for special share which can't be retried by reference name (like the array). -# -# examples: -# ynh_add_jinja_config --template="app.conf" --destination="$install_dir/app.conf" -# ynh_add_jinja_config --template="app-env" --destination="$install_dir/app-env" --ignore_vars="complex_array yolo" -# -# The template can be by default the name of a file in the conf directory -# -# The helper will verify the checksum and backup the destination file -# if it's different before applying the new template. -# -# And it will calculate and store the destination file checksum -# into the app settings when configuration is done. -# -## -## About the variables passed to the template: -## -# -# All variable defined in the script are available into the template (as string) except someone described below. -# If a variable make crash the helper for some reason (by example if the variable is of type array) -# or you just want to don't pass a specific variable for some other reason you can add it in the '--ignore_vars=' parameter as described above. -# Here are the list of ignored variable and so there won't never be available in the template: -# - All system environment variable like (TERM, USER, PATH, LANG, etc). -# If you need someone you just need to declare an other variable with the same value. -# Note that all Yunohost variable whose name begins by 'YNH_' are available and can be used in the template. -# - This following list: -# legacy_args args_array template destination ignore_vars template_path python_env_var ignore_var_regex -# progress_scale progress_string0 progress_string1 progress_string2 -# old changed binds types file_hash formats -# -## -## Usage in templates: -## -# -# For a full documentation of the template you can refer to: https://jinja.palletsprojects.com/en/3.1.x/templates/ -# In Yunohost context there are no really some specificity except that all variable passed are of type string. -# So here are some example of recommended usage: -# -# If you need a conditional block -# -# {% if should_my_block_be_shown == 'true' %} -# ... -# {% endif %} -# -# or -# -# {% if should_my_block_be_shown == '1' %} -# ... -# {% endif %} -# -# If you need to iterate with loop: -# -# {% for yolo in var_with_multiline_value.splitlines() %} -# ... -# {% endfor %} -# -# or -# -# {% for jail in my_var_with_coma.split(',') %} -# ... -# {% endfor %} -# -ynh_add_jinja_config() { - # Declare an array to define the options of this helper. - local legacy_args=tdi - local -A args_array=([t]=template= [d]=destination= [i]=ignore_vars= ) - local template - local destination - local ignore_vars - # Manage arguments with getopts - ynh_handle_getopts_args "$@" - local template_path - - # - ## List of all vars ignored and not passed to the template - # WARNING Update the list on the helper documentation at the top of the helper, if you change this list - # - - # local vars used in the helper - ignore_vars+=" legacy_args args_array template destination ignore_vars template_path python_env_var ignore_var_regex" - # yunohost helpers - ignore_vars+=" progress_scale progress_string0 progress_string1 progress_string2" - # Arrays used in config panel - ignore_vars+=" old changed binds types file_hash formats" - - if [ -f "$YNH_APP_BASEDIR/conf/$template" ]; then - template_path="$YNH_APP_BASEDIR/conf/$template" - elif [ -f "$template" ]; then - template_path=$template - else - ynh_die --message="The provided template $template doesn't exist" - fi - - ynh_backup_if_checksum_is_different --file="$destination" - - # Make sure to set the permissions before we copy the file - # This is to cover a case where an attacker could have - # created a file beforehand to have control over it - # (cp won't overwrite ownership / modes by default...) - touch "$destination" - chown root:root "$destination" - chmod 640 "$destination" - - local python_env_var='' - local ignore_var_regex - ignore_var_regex="$(echo "$ignore_vars" | sed -E 's@^\s*(.*\w)\s*$@\1@g' | sed -E 's@(\s+)@|@g')" - while read -r one_var; do - # Blacklist of var to not pass to template - if { [[ "$one_var" =~ ^[A-Z0-9_]+$ ]] && [[ "$one_var" != YNH_* ]]; } \ - || [[ "$one_var" =~ ^($ignore_var_regex)$ ]]; then - continue - fi - # Well python is very bad for the last character on raw string - # https://stackoverflow.com/questions/647769/why-cant-pythons-raw-string-literals-end-with-a-single-backslash - # So the solution here is to add one last char '-' so we know what it is - # and we are sure that it not \ or ' or something else which will be problematic with python - # And then we remove it while we are processing - python_env_var+="$one_var=r'''${!one_var}-'''[:-1]," - done <<< "$(compgen -v)" - - _ynh_apply_default_permissions "$destination" - ( - python3 -c 'import os, sys, jinja2; sys.stdout.write( - jinja2.Template(source=sys.stdin.read(), - undefined=jinja2.StrictUndefined, - ).render('"$python_env_var"'));' <"$template_path" >"$destination" - ) - ynh_store_file_checksum --file="$destination" -} diff --git a/scripts/install b/scripts/install index 603c236..1057ad7 100755 --- a/scripts/install +++ b/scripts/install @@ -7,7 +7,6 @@ #================================================= source _common.sh -source experimental_helper.sh source /usr/share/yunohost/helpers load_vars @@ -34,8 +33,8 @@ ynh_systemd_action --service_name="$app" --action=stop --log_path=systemd --time ynh_script_progression --message="Adding configurations related to $app..." --weight=1 mkdir -p /etc/monitorix -ynh_add_jinja_config --template=monitorix.conf --destination="/etc/monitorix/monitorix.conf" -ynh_add_jinja_config --template=nginx_status.conf --destination="$nginx_status_conf" +ynh_add_config --jinja --template=monitorix.conf --destination="/etc/monitorix/monitorix.conf" +ynh_add_config --jinja --template=nginx_status.conf --destination="$nginx_status_conf" ynh_add_nginx_config ynh_add_systemd_config diff --git a/scripts/remove b/scripts/remove index bd84296..d4c555a 100755 --- a/scripts/remove +++ b/scripts/remove @@ -7,7 +7,6 @@ #================================================= source _common.sh -source experimental_helper.sh source /usr/share/yunohost/helpers load_vars @@ -58,8 +57,4 @@ fi ynh_package_autopurge monitorix ynh_secure_remove --file="$install_dir" -if [ "$YNH_APP_PURGE" -eq 1 ]; then - ynh_secure_remove --file=/var/log/"$app" -fi - ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/upgrade b/scripts/upgrade index 5984372..6ad851d 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -7,7 +7,6 @@ #================================================= source _common.sh -source experimental_helper.sh source /usr/share/yunohost/helpers load_vars @@ -76,8 +75,8 @@ fi #================================================= ynh_script_progression --message="Upgrading configurations related to $app..." --weight=1 -ynh_add_jinja_config --template=monitorix.conf --destination=/etc/monitorix/monitorix.conf -ynh_add_jinja_config --template=nginx_status.conf --destination="$nginx_status_conf" +ynh_add_config --jinja --template=monitorix.conf --destination=/etc/monitorix/monitorix.conf +ynh_add_config --jinja --template=nginx_status.conf --destination="$nginx_status_conf" if "$phpfpm_installed"; then config_php_fpm fi diff --git a/sources/update_config_if_needed.sh b/sources/update_config_if_needed.sh index a4846d3..5c353e7 100644 --- a/sources/update_config_if_needed.sh +++ b/sources/update_config_if_needed.sh @@ -4,13 +4,11 @@ set -eu app=__APP__ YNH_APP_BASEDIR=/etc/yunohost/apps/"$app" +YNH_HELPERS_VERSION=2 pushd /etc/yunohost/apps/$app/conf source ../scripts/_common.sh source /usr/share/yunohost/helpers -# Must load experimental helper after because we need the patched version of ynh_package_is_installed -# To make the hook not too slow. It's mainly for optimization. -source ../scripts/experimental_helper.sh load_vars status_dirty=false @@ -75,8 +73,8 @@ if "$status_dirty"; then emailreports_yearly_graphs="$(ynh_app_setting_get --app="$app" --key=emailreports_yearly_graphs)" emailreports_yearly_to="$(ynh_app_setting_get --app="$app" --key=emailreports_yearly_to)" - ynh_add_jinja_config --template=monitorix.conf --destination="/etc/monitorix/monitorix.conf" - ynh_add_jinja_config --template=nginx_status.conf --destination="$nginx_status_conf" + ynh_add_config --jinja --template=monitorix.conf --destination="/etc/monitorix/monitorix.conf" + ynh_add_config --jinja --template=nginx_status.conf --destination="$nginx_status_conf" configure_db if "$phpfpm_installed"; then