From a2bc8c4f386b790389e274122dbc96530c97684f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Thu, 28 Sep 2023 17:31:55 +0200 Subject: [PATCH 1/7] Create versionned directories of the helpers --- debian/install | 2 +- helpers/helpers | 38 +++++++++++++++++++ helpers/{ => helpers.v1.d}/apps | 0 helpers/{ => helpers.v1.d}/apt | 0 helpers/{ => helpers.v1.d}/backup | 0 helpers/{ => helpers.v1.d}/config | 0 helpers/{ => helpers.v1.d}/fail2ban | 0 helpers/{ => helpers.v1.d}/getopts | 0 helpers/{ => helpers.v1.d}/go | 0 helpers/{ => helpers.v1.d}/hardware | 0 helpers/{ => helpers.v1.d}/logging | 0 helpers/{ => helpers.v1.d}/logrotate | 0 helpers/{ => helpers.v1.d}/mongodb | 0 helpers/{ => helpers.v1.d}/multimedia | 0 helpers/{ => helpers.v1.d}/mysql | 0 helpers/{ => helpers.v1.d}/network | 0 helpers/{ => helpers.v1.d}/nginx | 0 helpers/{ => helpers.v1.d}/nodejs | 2 +- helpers/{ => helpers.v1.d}/permission | 0 helpers/{ => helpers.v1.d}/php | 0 helpers/{ => helpers.v1.d}/postgresql | 0 helpers/{ => helpers.v1.d}/redis | 0 helpers/{ => helpers.v1.d}/ruby | 0 helpers/{ => helpers.v1.d}/setting | 0 helpers/{ => helpers.v1.d}/string | 0 helpers/{ => helpers.v1.d}/systemd | 0 helpers/{ => helpers.v1.d}/user | 0 helpers/{ => helpers.v1.d}/utils | 2 +- .../vendor/docker-image-extract/LICENSE | 0 .../vendor/docker-image-extract/README.md | 0 .../docker-image-extract/docker-image-extract | 0 helpers/{ => helpers.v1.d}/vendor/n/LICENSE | 0 helpers/{ => helpers.v1.d}/vendor/n/README.md | 0 helpers/{ => helpers.v1.d}/vendor/n/n | 0 share/helpers | 8 ---- 35 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 helpers/helpers rename helpers/{ => helpers.v1.d}/apps (100%) rename helpers/{ => helpers.v1.d}/apt (100%) rename helpers/{ => helpers.v1.d}/backup (100%) rename helpers/{ => helpers.v1.d}/config (100%) rename helpers/{ => helpers.v1.d}/fail2ban (100%) rename helpers/{ => helpers.v1.d}/getopts (100%) rename helpers/{ => helpers.v1.d}/go (100%) rename helpers/{ => helpers.v1.d}/hardware (100%) rename helpers/{ => helpers.v1.d}/logging (100%) rename helpers/{ => helpers.v1.d}/logrotate (100%) rename helpers/{ => helpers.v1.d}/mongodb (100%) rename helpers/{ => helpers.v1.d}/multimedia (100%) rename helpers/{ => helpers.v1.d}/mysql (100%) rename helpers/{ => helpers.v1.d}/network (100%) rename helpers/{ => helpers.v1.d}/nginx (100%) rename helpers/{ => helpers.v1.d}/nodejs (99%) rename helpers/{ => helpers.v1.d}/permission (100%) rename helpers/{ => helpers.v1.d}/php (100%) rename helpers/{ => helpers.v1.d}/postgresql (100%) rename helpers/{ => helpers.v1.d}/redis (100%) rename helpers/{ => helpers.v1.d}/ruby (100%) rename helpers/{ => helpers.v1.d}/setting (100%) rename helpers/{ => helpers.v1.d}/string (100%) rename helpers/{ => helpers.v1.d}/systemd (100%) rename helpers/{ => helpers.v1.d}/user (100%) rename helpers/{ => helpers.v1.d}/utils (99%) rename helpers/{ => helpers.v1.d}/vendor/docker-image-extract/LICENSE (100%) rename helpers/{ => helpers.v1.d}/vendor/docker-image-extract/README.md (100%) rename helpers/{ => helpers.v1.d}/vendor/docker-image-extract/docker-image-extract (100%) rename helpers/{ => helpers.v1.d}/vendor/n/LICENSE (100%) rename helpers/{ => helpers.v1.d}/vendor/n/README.md (100%) rename helpers/{ => helpers.v1.d}/vendor/n/n (100%) delete mode 100644 share/helpers diff --git a/debian/install b/debian/install index 5169d0b62..86636fa93 100644 --- a/debian/install +++ b/debian/install @@ -1,7 +1,7 @@ bin/* /usr/bin/ share/* /usr/share/yunohost/ hooks/* /usr/share/yunohost/hooks/ -helpers/* /usr/share/yunohost/helpers.d/ +helpers/* /usr/share/yunohost/ conf/* /usr/share/yunohost/conf/ locales/* /usr/share/yunohost/locales/ doc/yunohost.8.gz /usr/share/man/man8/ diff --git a/helpers/helpers b/helpers/helpers new file mode 100644 index 000000000..311a7c478 --- /dev/null +++ b/helpers/helpers @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# Entrypoint for the helpers scripts +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + + +if [[ -n "${1:-}" ]]; then + # helpers version can be passed as first when sourcing. + YNH_APP_HELPERS_VERSION="$1" +elif [[ -n "${YNH_APP_HELPERS_VERSION:-}" ]]; then + # ...or as environment variable set from manifest + : +elif [[ -n "${YNH_APP_PACKAGING_FORMAT:-}" ]]; then + # ...or default to packaging format version. + YNH_APP_HELPERS_VERSION="$YNH_APP_PACKAGING_FORMAT" +else + # ...or default to 1 + YNH_APP_HELPERS_VERSION=1 +fi + + +YNH_APP_HELPERS_DIR="$SCRIPT_DIR/helpers.v${YNH_APP_HELPERS_VERSION}.d" +if [[ ! -d "$YNH_APP_HELPERS_DIR" ]]; then + echo "Helpers are not available in version '$YNH_APP_HELPERS_VERSION'." >&2 + exit 1 +fi + + +# This is a trick to later only restore set -x if it was set when calling this script +readonly XTRACE_ENABLE=$(set +o | grep xtrace) +set +x + +readarray -t HELPERS < <(find "$YNH_APP_HELPERS_DIR" -mindepth 1 -maxdepth 1 -type f) + +for helper in "${HELPERS[@]}"; do + [ -r "$helper" ] && source "$helper" +done + +eval "$XTRACE_ENABLE" diff --git a/helpers/apps b/helpers/helpers.v1.d/apps similarity index 100% rename from helpers/apps rename to helpers/helpers.v1.d/apps diff --git a/helpers/apt b/helpers/helpers.v1.d/apt similarity index 100% rename from helpers/apt rename to helpers/helpers.v1.d/apt diff --git a/helpers/backup b/helpers/helpers.v1.d/backup similarity index 100% rename from helpers/backup rename to helpers/helpers.v1.d/backup diff --git a/helpers/config b/helpers/helpers.v1.d/config similarity index 100% rename from helpers/config rename to helpers/helpers.v1.d/config diff --git a/helpers/fail2ban b/helpers/helpers.v1.d/fail2ban similarity index 100% rename from helpers/fail2ban rename to helpers/helpers.v1.d/fail2ban diff --git a/helpers/getopts b/helpers/helpers.v1.d/getopts similarity index 100% rename from helpers/getopts rename to helpers/helpers.v1.d/getopts diff --git a/helpers/go b/helpers/helpers.v1.d/go similarity index 100% rename from helpers/go rename to helpers/helpers.v1.d/go diff --git a/helpers/hardware b/helpers/helpers.v1.d/hardware similarity index 100% rename from helpers/hardware rename to helpers/helpers.v1.d/hardware diff --git a/helpers/logging b/helpers/helpers.v1.d/logging similarity index 100% rename from helpers/logging rename to helpers/helpers.v1.d/logging diff --git a/helpers/logrotate b/helpers/helpers.v1.d/logrotate similarity index 100% rename from helpers/logrotate rename to helpers/helpers.v1.d/logrotate diff --git a/helpers/mongodb b/helpers/helpers.v1.d/mongodb similarity index 100% rename from helpers/mongodb rename to helpers/helpers.v1.d/mongodb diff --git a/helpers/multimedia b/helpers/helpers.v1.d/multimedia similarity index 100% rename from helpers/multimedia rename to helpers/helpers.v1.d/multimedia diff --git a/helpers/mysql b/helpers/helpers.v1.d/mysql similarity index 100% rename from helpers/mysql rename to helpers/helpers.v1.d/mysql diff --git a/helpers/network b/helpers/helpers.v1.d/network similarity index 100% rename from helpers/network rename to helpers/helpers.v1.d/network diff --git a/helpers/nginx b/helpers/helpers.v1.d/nginx similarity index 100% rename from helpers/nginx rename to helpers/helpers.v1.d/nginx diff --git a/helpers/nodejs b/helpers/helpers.v1.d/nodejs similarity index 99% rename from helpers/nodejs rename to helpers/helpers.v1.d/nodejs index 9401fc875..bb879853b 100644 --- a/helpers/nodejs +++ b/helpers/helpers.v1.d/nodejs @@ -115,7 +115,7 @@ ynh_install_nodejs() { # Install (or update if YunoHost vendor/ folder updated since last install) n mkdir -p $n_install_dir/bin/ - cp /usr/share/yunohost/helpers.d/vendor/n/n $n_install_dir/bin/n + cp "$YNH_APP_HELPERS_DIR/vendor/n/n" $n_install_dir/bin/n # Tweak for n to understand it's installed in $N_PREFIX ynh_replace_string --match_string="^N_PREFIX=\${N_PREFIX-.*}$" --replace_string="N_PREFIX=\${N_PREFIX-$N_PREFIX}" --target_file="$n_install_dir/bin/n" diff --git a/helpers/permission b/helpers/helpers.v1.d/permission similarity index 100% rename from helpers/permission rename to helpers/helpers.v1.d/permission diff --git a/helpers/php b/helpers/helpers.v1.d/php similarity index 100% rename from helpers/php rename to helpers/helpers.v1.d/php diff --git a/helpers/postgresql b/helpers/helpers.v1.d/postgresql similarity index 100% rename from helpers/postgresql rename to helpers/helpers.v1.d/postgresql diff --git a/helpers/redis b/helpers/helpers.v1.d/redis similarity index 100% rename from helpers/redis rename to helpers/helpers.v1.d/redis diff --git a/helpers/ruby b/helpers/helpers.v1.d/ruby similarity index 100% rename from helpers/ruby rename to helpers/helpers.v1.d/ruby diff --git a/helpers/setting b/helpers/helpers.v1.d/setting similarity index 100% rename from helpers/setting rename to helpers/helpers.v1.d/setting diff --git a/helpers/string b/helpers/helpers.v1.d/string similarity index 100% rename from helpers/string rename to helpers/helpers.v1.d/string diff --git a/helpers/systemd b/helpers/helpers.v1.d/systemd similarity index 100% rename from helpers/systemd rename to helpers/helpers.v1.d/systemd diff --git a/helpers/user b/helpers/helpers.v1.d/user similarity index 100% rename from helpers/user rename to helpers/helpers.v1.d/user diff --git a/helpers/utils b/helpers/helpers.v1.d/utils similarity index 99% rename from helpers/utils rename to helpers/helpers.v1.d/utils index f182fee38..bec3d4972 100644 --- a/helpers/utils +++ b/helpers/helpers.v1.d/utils @@ -318,7 +318,7 @@ ynh_setup_source() { mv $src_filename $dest_dir/$src_rename fi elif [[ "$src_format" == "docker" ]]; then - /usr/share/yunohost/helpers.d/vendor/docker-image-extract/docker-image-extract -p $src_platform -o $dest_dir $src_url 2>&1 + "$YNH_APP_HELPERS_DIR/vendor/docker-image-extract/docker-image-extract" -p $src_platform -o $dest_dir $src_url 2>&1 elif [[ "$src_format" == "zip" ]]; then # Zip format # Using of a temp directory, because unzip doesn't manage --strip-components diff --git a/helpers/vendor/docker-image-extract/LICENSE b/helpers/helpers.v1.d/vendor/docker-image-extract/LICENSE similarity index 100% rename from helpers/vendor/docker-image-extract/LICENSE rename to helpers/helpers.v1.d/vendor/docker-image-extract/LICENSE diff --git a/helpers/vendor/docker-image-extract/README.md b/helpers/helpers.v1.d/vendor/docker-image-extract/README.md similarity index 100% rename from helpers/vendor/docker-image-extract/README.md rename to helpers/helpers.v1.d/vendor/docker-image-extract/README.md diff --git a/helpers/vendor/docker-image-extract/docker-image-extract b/helpers/helpers.v1.d/vendor/docker-image-extract/docker-image-extract similarity index 100% rename from helpers/vendor/docker-image-extract/docker-image-extract rename to helpers/helpers.v1.d/vendor/docker-image-extract/docker-image-extract diff --git a/helpers/vendor/n/LICENSE b/helpers/helpers.v1.d/vendor/n/LICENSE similarity index 100% rename from helpers/vendor/n/LICENSE rename to helpers/helpers.v1.d/vendor/n/LICENSE diff --git a/helpers/vendor/n/README.md b/helpers/helpers.v1.d/vendor/n/README.md similarity index 100% rename from helpers/vendor/n/README.md rename to helpers/helpers.v1.d/vendor/n/README.md diff --git a/helpers/vendor/n/n b/helpers/helpers.v1.d/vendor/n/n similarity index 100% rename from helpers/vendor/n/n rename to helpers/helpers.v1.d/vendor/n/n diff --git a/share/helpers b/share/helpers deleted file mode 100644 index 04f7b538c..000000000 --- a/share/helpers +++ /dev/null @@ -1,8 +0,0 @@ -# -*- shell-script -*- - -readonly XTRACE_ENABLE=$(set +o | grep xtrace) # This is a trick to later only restore set -x if it was set when calling this script -set +x -for helper in $(run-parts --list /usr/share/yunohost/helpers.d 2>/dev/null) ; do - [ -r $helper ] && . $helper || true -done -eval "$XTRACE_ENABLE" From 5d3131b494d2fd8c6c06091044de97d487121f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Sun, 26 May 2024 19:45:56 +0200 Subject: [PATCH 2/7] rework top-level helpers --- helpers/helpers | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/helpers/helpers b/helpers/helpers index 311a7c478..1a5e269de 100644 --- a/helpers/helpers +++ b/helpers/helpers @@ -9,30 +9,26 @@ if [[ -n "${1:-}" ]]; then elif [[ -n "${YNH_APP_HELPERS_VERSION:-}" ]]; then # ...or as environment variable set from manifest : -elif [[ -n "${YNH_APP_PACKAGING_FORMAT:-}" ]]; then - # ...or default to packaging format version. - YNH_APP_HELPERS_VERSION="$YNH_APP_PACKAGING_FORMAT" else # ...or default to 1 YNH_APP_HELPERS_VERSION=1 fi - -YNH_APP_HELPERS_DIR="$SCRIPT_DIR/helpers.v${YNH_APP_HELPERS_VERSION}.d" -if [[ ! -d "$YNH_APP_HELPERS_DIR" ]]; then - echo "Helpers are not available in version '$YNH_APP_HELPERS_VERSION'." >&2 - exit 1 -fi - - # This is a trick to later only restore set -x if it was set when calling this script readonly XTRACE_ENABLE=$(set +o | grep xtrace) set +x -readarray -t HELPERS < <(find "$YNH_APP_HELPERS_DIR" -mindepth 1 -maxdepth 1 -type f) - -for helper in "${HELPERS[@]}"; do - [ -r "$helper" ] && source "$helper" -done +YNH_APP_HELPERS_DIR="$SCRIPT_DIR/helpers.v${YNH_APP_HELPERS_VERSION}.d" +case "$YNH_APP_HELPERS_VERSION" in + 1) + readarray -t HELPERS < <(find "$YNH_APP_HELPERS_DIR" -mindepth 1 -maxdepth 1 -type f) + for helper in "${HELPERS[@]}"; do + [ -r "$helper" ] && source "$helper" + done + ;; + *) + echo "Helpers are not available in version '$YNH_APP_HELPERS_VERSION'." >&2 + exit 1 +esac eval "$XTRACE_ENABLE" From 7011b1c879f7290a0f07d73205a13c991046ad5a Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 May 2024 16:35:38 +0200 Subject: [PATCH 3/7] YNH_APP_HELPERS_DIR -> YNH_HELPERS_DIR --- helpers/helpers | 17 +++++++---------- helpers/helpers.v1.d/nodejs | 2 +- helpers/helpers.v1.d/utils | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/helpers/helpers b/helpers/helpers index 1a5e269de..a0d0fb3a9 100644 --- a/helpers/helpers +++ b/helpers/helpers @@ -2,32 +2,29 @@ # Entrypoint for the helpers scripts SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - if [[ -n "${1:-}" ]]; then # helpers version can be passed as first when sourcing. - YNH_APP_HELPERS_VERSION="$1" -elif [[ -n "${YNH_APP_HELPERS_VERSION:-}" ]]; then - # ...or as environment variable set from manifest - : + YNH_HELPERS_VERSION="$1" else + # ...or as environment variable set from manifest # ...or default to 1 - YNH_APP_HELPERS_VERSION=1 + YNH_HELPERS_VERSION=${YNH_HELPERS_VERSION:-1} fi # This is a trick to later only restore set -x if it was set when calling this script readonly XTRACE_ENABLE=$(set +o | grep xtrace) set +x -YNH_APP_HELPERS_DIR="$SCRIPT_DIR/helpers.v${YNH_APP_HELPERS_VERSION}.d" -case "$YNH_APP_HELPERS_VERSION" in +YNH_HELPERS_DIR="$SCRIPT_DIR/helpers.v${YNH_HELPERS_VERSION}.d" +case "$YNH_HELPERS_VERSION" in 1) - readarray -t HELPERS < <(find "$YNH_APP_HELPERS_DIR" -mindepth 1 -maxdepth 1 -type f) + readarray -t HELPERS < <(find "$YNH_HELPERS_DIR" -mindepth 1 -maxdepth 1 -type f) for helper in "${HELPERS[@]}"; do [ -r "$helper" ] && source "$helper" done ;; *) - echo "Helpers are not available in version '$YNH_APP_HELPERS_VERSION'." >&2 + echo "Helpers are not available in version '$YNH_HELPERS_VERSION'." >&2 exit 1 esac diff --git a/helpers/helpers.v1.d/nodejs b/helpers/helpers.v1.d/nodejs index bb879853b..779f077d0 100644 --- a/helpers/helpers.v1.d/nodejs +++ b/helpers/helpers.v1.d/nodejs @@ -115,7 +115,7 @@ ynh_install_nodejs() { # Install (or update if YunoHost vendor/ folder updated since last install) n mkdir -p $n_install_dir/bin/ - cp "$YNH_APP_HELPERS_DIR/vendor/n/n" $n_install_dir/bin/n + cp "$YNH_HELPERS_DIR/vendor/n/n" $n_install_dir/bin/n # Tweak for n to understand it's installed in $N_PREFIX ynh_replace_string --match_string="^N_PREFIX=\${N_PREFIX-.*}$" --replace_string="N_PREFIX=\${N_PREFIX-$N_PREFIX}" --target_file="$n_install_dir/bin/n" diff --git a/helpers/helpers.v1.d/utils b/helpers/helpers.v1.d/utils index bec3d4972..631e154e2 100644 --- a/helpers/helpers.v1.d/utils +++ b/helpers/helpers.v1.d/utils @@ -318,7 +318,7 @@ ynh_setup_source() { mv $src_filename $dest_dir/$src_rename fi elif [[ "$src_format" == "docker" ]]; then - "$YNH_APP_HELPERS_DIR/vendor/docker-image-extract/docker-image-extract" -p $src_platform -o $dest_dir $src_url 2>&1 + "$YNH_HELPERS_DIR/vendor/docker-image-extract/docker-image-extract" -p $src_platform -o $dest_dir $src_url 2>&1 elif [[ "$src_format" == "zip" ]]; then # Zip format # Using of a temp directory, because unzip doesn't manage --strip-components From 1e47a1438bde5efeb33d108d2de68b671646c10c Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 May 2024 16:38:09 +0200 Subject: [PATCH 4/7] apps: auto-define YNH_HELPERS_VERSION from a new 'helpers_version' key in the manifest's [integration] section, or fallback to the 'packaging_format' info --- src/app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app.py b/src/app.py index 018c339e7..4eab81a99 100644 --- a/src/app.py +++ b/src/app.py @@ -2968,6 +2968,7 @@ def _make_environment_for_app_script( "YNH_APP_INSTANCE_NUMBER": str(app_instance_nb), "YNH_APP_MANIFEST_VERSION": manifest.get("version", "?"), "YNH_APP_PACKAGING_FORMAT": str(manifest["packaging_format"]), + "YNH_HELPERS_VERSION": manifest.get("integration", {}).get("helpers_version") or manifest["packaging_format"], "YNH_ARCH": system_arch(), "YNH_DEBIAN_VERSION": debian_version(), } From 2047d536be92bd5cb6bc9ec1bf3f24cbc7ae319f Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 May 2024 16:57:33 +0200 Subject: [PATCH 5/7] helpers: we need helpers.v2.d to be a symlink to helpers.v1.d? --- helpers/helpers.v2.d | 1 + 1 file changed, 1 insertion(+) create mode 120000 helpers/helpers.v2.d diff --git a/helpers/helpers.v2.d b/helpers/helpers.v2.d new file mode 120000 index 000000000..e2614c897 --- /dev/null +++ b/helpers/helpers.v2.d @@ -0,0 +1 @@ +helpers.v1.d \ No newline at end of file From e3282f2329381a1de2c9c193ea7fab0750e5d32f Mon Sep 17 00:00:00 2001 From: alexAubin <4533074+alexAubin@users.noreply.github.com> Date: Mon, 27 May 2024 14:58:01 +0000 Subject: [PATCH 6/7] :art: Format Python code with Black --- src/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app.py b/src/app.py index 4eab81a99..020bdc8b8 100644 --- a/src/app.py +++ b/src/app.py @@ -2968,7 +2968,8 @@ def _make_environment_for_app_script( "YNH_APP_INSTANCE_NUMBER": str(app_instance_nb), "YNH_APP_MANIFEST_VERSION": manifest.get("version", "?"), "YNH_APP_PACKAGING_FORMAT": str(manifest["packaging_format"]), - "YNH_HELPERS_VERSION": manifest.get("integration", {}).get("helpers_version") or manifest["packaging_format"], + "YNH_HELPERS_VERSION": manifest.get("integration", {}).get("helpers_version") + or manifest["packaging_format"], "YNH_ARCH": system_arch(), "YNH_DEBIAN_VERSION": debian_version(), } From af2a56012ff49f41ff7bf1ed2acb16fc546af6b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Mon, 27 May 2024 17:26:56 +0200 Subject: [PATCH 7/7] Fix helpers: actually that might be a bad idea to read arguments as if `source helpers` has no arguments passed, $@ is the main script arguments. --- helpers/helpers | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/helpers/helpers b/helpers/helpers index a0d0fb3a9..b684cf9d8 100644 --- a/helpers/helpers +++ b/helpers/helpers @@ -2,14 +2,8 @@ # Entrypoint for the helpers scripts SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -if [[ -n "${1:-}" ]]; then - # helpers version can be passed as first when sourcing. - YNH_HELPERS_VERSION="$1" -else - # ...or as environment variable set from manifest - # ...or default to 1 - YNH_HELPERS_VERSION=${YNH_HELPERS_VERSION:-1} -fi +# Helpers version can be specified via an environment variable or default to 1. +YNH_HELPERS_VERSION=${YNH_HELPERS_VERSION:-1} # This is a trick to later only restore set -x if it was set when calling this script readonly XTRACE_ENABLE=$(set +o | grep xtrace)