From fa17585afca3c83057dcf4ac5f6afb0c37dc252c Mon Sep 17 00:00:00 2001 From: Pepe44DEV Date: Wed, 27 May 2026 21:11:18 +0200 Subject: [PATCH] fix: module_required-Erkennung + subshell-safe OMERON_MODULE_DIR + collect_modules existence-check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - collect_all_interactive: module VOR declare -F sourcen (erstes Modul wurde nie als required erkannt, sondern immer mit tui_confirm nachgefragt) - OMERON_MODULE_DIR exportieren (Subshell von <(...) könnte sonst leeren Wert haben → Module nicht gefunden) - collect_modules (--modules): auch hier file-existence prüfen --- install.sh | 8 +++++--- lib/modules.sh | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index eed9ac1..7313a6e 100755 --- a/install.sh +++ b/install.sh @@ -133,7 +133,8 @@ detect_environment() { collect_modules() { if ((${#RUN_MODULES[@]})); then for mod in "${RUN_MODULES[@]}"; do - printf '%s\n' "$OMERON_MODULE_DIR/$mod.sh" + local module_file="$OMERON_MODULE_DIR/$mod.sh" + [[ -f "$module_file" ]] && printf '%s\n' "$module_file" done return fi @@ -176,8 +177,10 @@ collect_all_interactive() { local module_file="$OMERON_MODULE_DIR/$mod.sh" [[ -f "$module_file" ]] || continue + source "$module_file" 2>/dev/null || continue + local description="" - if source "$module_file" 2>/dev/null && declare -F "module_description" >/dev/null 2>&1; then + if declare -F "module_description" >/dev/null 2>&1; then description="$(module_description)" fi @@ -185,7 +188,6 @@ collect_all_interactive() { log_step "$idx" "$total" "${description:-$mod}" if declare -F "module_required" >/dev/null 2>&1; then - source "$module_file" if module_required; then tui_info "Required module — will run" module_order+=("$module_file") diff --git a/lib/modules.sh b/lib/modules.sh index 4fc0197..71f68fa 100755 --- a/lib/modules.sh +++ b/lib/modules.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash OMERON_MODULE_DIR="${OMERON_MODULE_DIR:-$OMERON_PROJECT_DIR/modules}" +export OMERON_MODULE_DIR module_list() { local category="${1:-}"