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