rbash_load() { local rel="$1" local url file if [ -z "${_RBASH_MERGE_START:-}" ]; then if [ -n "$_RBASH_LOADED" ]; then return 0 fi if [ -f "$RBASH_MERGED" ]; then # shellcheck source=/dev/null source "$RBASH_MERGED" && { _RBASH_LOADED=1 return 0 } rm -f "$RBASH_MERGED" fi fi echo "Load: $rel" url="$(rbash_url "$rel")" file="$(rbash_cache "$url")" || { echo " ..download failed" >&2 return 1 } # shellcheck source=/dev/null if source "$file"; then { printf 'echo "Load: %s"\n' "$rel" cat "$file" printf '\n' } >> "$RBASH_MERGED" else echo " ..failed" >&2 printf 'echo "Skipped: %s. Use rbash-reload to try again."\n' "$rel" >> "$RBASH_MERGED" fi chmod 700 "$RBASH_MERGED" } rbash-reload() { _RBASH_LOADED= _RBASH_MERGE_START=1 rm -f "$RBASH_MERGED" # shellcheck source=/dev/null source "$RBASH_CONFIG" _RBASH_MERGE_START= } rbash-run() { local rel="$1" local file shift || true echo "Getting: $rel" file="$(rbash_cache "$(rbash_url "$rel")")" || return 1 "$file" "$@" }