fix: module_required-Erkennung + subshell-safe OMERON_MODULE_DIR + collect_modules existence-check

- 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
This commit is contained in:
2026-05-27 21:11:18 +02:00
parent 7ab1a466cc
commit fa17585afc
2 changed files with 6 additions and 3 deletions

View File

@@ -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")

View File

@@ -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:-}"