commit 071a4a8290179b5f35f86efef6ee556ba82a8898
| author | 斟酌 鵬兄 <tgckpg@gmail.com> |
| date | 2026-06-28T02:27:28Z |
| subject | rbash-reload to support -f |
commit 071a4a8290179b5f35f86efef6ee556ba82a8898
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date: 2026-06-28T02:27:28Z
rbash-reload to support -f
---
bash/core/30_loader.bash | 74 +++++++++++++++++++++++++-----------------------
bash/dist/rbashrc | 68 +++++++++++++++++++++++---------------------
bash/dist/rbashrc.asc | 10 +++----
3 files changed, 80 insertions(+), 72 deletions(-)
diff --git a/bash/core/30_loader.bash b/bash/core/30_loader.bash
index a5f15b4..fc1ebd3 100755
--- a/bash/core/30_loader.bash
+++ b/bash/core/30_loader.bash
@@ -1,40 +1,44 @@
rbash-reload() {
- _RBASH_LOADED=
- _RBASH_MERGE_START=1
+ _RBASH_LOADED=
+ _RBASH_MERGE_START=1
- mkdir -p "$RBASH_CACHE_DIR"
+ if [ "$1" = "-f" ]; then
+ rm -rf "$RBASH_CACHE_DIR"
+ fi
+
+ mkdir -p "$RBASH_CACHE_DIR"
- rm -f "$RBASH_MERGED"
- : > "$RBASH_MERGED" || {
- echo "rbash: failed to write merged cache: $RBASH_MERGED" >&2
- _RBASH_MERGE_START=
- return 1
- }
+ rm -f "$RBASH_MERGED"
+ : > "$RBASH_MERGED" || {
+ echo "rbash: failed to write merged cache: $RBASH_MERGED" >&2
+ _RBASH_MERGE_START=
+ return 1
+ }
- # shellcheck source=/dev/null
- source "$RBASH_CONFIG"
+ # shellcheck source=/dev/null
+ source "$RBASH_CONFIG"
- _RBASH_MERGE_START=
- _RBASH_LOADED=1
+ _RBASH_MERGE_START=
+ _RBASH_LOADED=1
}
__rbash_autoload() {
- 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
- }
-
- echo "rbash: merged cache failed, rebuilding" >&2
- rm -f "$RBASH_MERGED"
- fi
-
- rbash-reload
+ 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
+ }
+
+ echo "rbash: merged cache failed, rebuilding" >&2
+ rm -f "$RBASH_MERGED"
+ fi
+
+ rbash-reload
}
rbash_load() {
@@ -74,13 +78,13 @@ rbash_load() {
}
rbash-run() {
- local rel="$1"
- local file
+ local rel="$1"
+ local file
- shift || true
+ shift || true
- echo "Getting: $rel"
+ echo "Getting: $rel"
- file="$(rbash_cache "$(rbash_url "$rel")")" || return 1
- "$file" "$@"
+ file="$(rbash_cache "$(rbash_url "$rel")")" || return 1
+ "$file" "$@"
}
diff --git a/bash/dist/rbashrc b/bash/dist/rbashrc
index 613f121..7bedf5f 100755
--- a/bash/dist/rbashrc
+++ b/bash/dist/rbashrc
@@ -195,42 +195,46 @@ _require_jq() {
# ---- rbash: bash/core/30_loader.bash ----
rbash-reload() {
- _RBASH_LOADED=
- _RBASH_MERGE_START=1
+ _RBASH_LOADED=
+ _RBASH_MERGE_START=1
- mkdir -p "$RBASH_CACHE_DIR"
+ if [ "$1" = "-f" ]; then
+ rm -rf "$RBASH_CACHE_DIR"
+ fi
- rm -f "$RBASH_MERGED"
- : > "$RBASH_MERGED" || {
- echo "rbash: failed to write merged cache: $RBASH_MERGED" >&2
- _RBASH_MERGE_START=
- return 1
- }
+ mkdir -p "$RBASH_CACHE_DIR"
- # shellcheck source=/dev/null
- source "$RBASH_CONFIG"
+ rm -f "$RBASH_MERGED"
+ : > "$RBASH_MERGED" || {
+ echo "rbash: failed to write merged cache: $RBASH_MERGED" >&2
+ _RBASH_MERGE_START=
+ return 1
+ }
+
+ # shellcheck source=/dev/null
+ source "$RBASH_CONFIG"
- _RBASH_MERGE_START=
- _RBASH_LOADED=1
+ _RBASH_MERGE_START=
+ _RBASH_LOADED=1
}
__rbash_autoload() {
- if [ -n "${_RBASH_LOADED:-}" ]; then
- return 0
- fi
+ 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
- }
+ if [ -f "$RBASH_MERGED" ]; then
+ # shellcheck source=/dev/null
+ source "$RBASH_MERGED" && {
+ _RBASH_LOADED=1
+ return 0
+ }
- echo "rbash: merged cache failed, rebuilding" >&2
- rm -f "$RBASH_MERGED"
- fi
+ echo "rbash: merged cache failed, rebuilding" >&2
+ rm -f "$RBASH_MERGED"
+ fi
- rbash-reload
+ rbash-reload
}
rbash_load() {
@@ -270,15 +274,15 @@ rbash_load() {
}
rbash-run() {
- local rel="$1"
- local file
+ local rel="$1"
+ local file
- shift || true
+ shift || true
- echo "Getting: $rel"
+ echo "Getting: $rel"
- file="$(rbash_cache "$(rbash_url "$rel")")" || return 1
- "$file" "$@"
+ file="$(rbash_cache "$(rbash_url "$rel")")" || return 1
+ "$file" "$@"
}
diff --git a/bash/dist/rbashrc.asc b/bash/dist/rbashrc.asc
index 0a1295a..06df515 100644
--- a/bash/dist/rbashrc.asc
+++ b/bash/dist/rbashrc.asc
@@ -1,8 +1,8 @@
-----BEGIN PGP SIGNATURE-----
-iJEEABYKADkWIQR8HpSNhBJUxWnt+97Vz1+xz60nwwUCakCD2BsUgAAAAAAEAA5t
-YW51MiwyLjUrMS4xMiwwLDMACgkQ1c9fsc+tJ8MfWwEAx539cnhecaZdpc4pj0gQ
-ekUURDkVLf4654Ot6il0TbQA/iWaIOPgSOgDYwB8+83cjqlNrXRiq/Uj0Nu5vWZm
-V/AO
-=LRnk
+iJEEABYKADkWIQR8HpSNhBJUxWnt+97Vz1+xz60nwwUCakCGbRsUgAAAAAAEAA5t
+YW51MiwyLjUrMS4xMiwwLDMACgkQ1c9fsc+tJ8OCjQD/bHWhIGbbuB2RS4oNu7Ur
+LSIgPDSUqHH1hM3TDT6PijEBANUZYsLndu92wjLa6rtQnv9A6ZTYsBR+P6D24teq
+FbcA
+=6ZYt
-----END PGP SIGNATURE-----