43 lines
1.0 KiB
Bash
43 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
REGISTRY_MODULE_COUNT=0
|
|
declare -a REGISTRY_MODULES=()
|
|
declare -A REGISTRY_MODULE_PATHS=()
|
|
|
|
registry_init() {
|
|
local module_file=""
|
|
local module_id=""
|
|
REGISTRY_MODULE_COUNT=0
|
|
REGISTRY_MODULES=()
|
|
REGISTRY_MODULE_PATHS=()
|
|
|
|
while IFS= read -r module_file; do
|
|
# shellcheck source=/dev/null
|
|
source "$module_file"
|
|
module_id="${module_file#"$RUNTIME_PROJECT_ROOT/modules/"}"
|
|
module_id="${module_id%/module.sh}"
|
|
REGISTRY_MODULES+=("$module_id")
|
|
REGISTRY_MODULE_PATHS["$module_id"]="$module_file"
|
|
done < <(find "$RUNTIME_PROJECT_ROOT/modules" -mindepth 3 -maxdepth 3 -type f -name 'module.sh' | sort)
|
|
|
|
REGISTRY_MODULE_COUNT="${#REGISTRY_MODULES[@]}"
|
|
}
|
|
|
|
registry_summary() {
|
|
printf '%s' "$REGISTRY_MODULE_COUNT"
|
|
}
|
|
|
|
registry_list() {
|
|
printf '%s\n' "${REGISTRY_MODULES[@]}"
|
|
}
|
|
|
|
registry_has_module() {
|
|
local module_id="$1"
|
|
[[ -n "${REGISTRY_MODULE_PATHS[$module_id]:-}" ]]
|
|
}
|
|
|
|
registry_module_path() {
|
|
local module_id="$1"
|
|
printf '%s\n' "${REGISTRY_MODULE_PATHS[$module_id]:-}"
|
|
}
|