From f271e1fb55eacee8be10ef02b536c988d77a3f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Fri, 12 Aug 2022 00:00:30 +0800 Subject: [PATCH] Speed up loading by merging --- bash/bashrc/rbashrc | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/bash/bashrc/rbashrc b/bash/bashrc/rbashrc index a5655ad..393808b 100644 --- a/bash/bashrc/rbashrc +++ b/bash/bashrc/rbashrc @@ -26,6 +26,8 @@ fi mkdir -p "$RBASH_SOURCES" +RBASH_MERGED="$RBASH_SOURCES/merged" + # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth @@ -109,12 +111,32 @@ function rbash_cache { echo -n "$CACHE_FILE" } -# User specific aliases and functions +_RBASH_LOADED= function rbash_load { local f path + + if [ -z "$_RBASH_UPGRADE" ]; then + if [ -n "$_RBASH_LOADED" ]; then + return 0 + fi + + if [ -f "$RBASH_MERGED" ]; then + source $RBASH_MERGED + if [ $? -eq 0 ]; then + _RBASH_LOADED=1 + return 0 + fi + rm "$RBASH_MERGED" + fi + fi + echo "Load: $1" f=`rbash_cache "$RBASH_REMOTE/$RBASH_REPO/raw/branch/master/$RBASH_PATH/$1"` source "$f" + + echo "echo \"Load: $1\"" >> "$RBASH_MERGED" + cat "$f" >> "$RBASH_SOURCES/merged" + chmod 700 "$RBASH_MERGED" } function rbash-upgrade { @@ -151,7 +173,9 @@ function rbash-upgrade { rm -r "$RBASH_SOURCES" fi + _RBASH_UPGRADE=1 source $__SCRIPT + unset _RBASH_UPGRADE } function rbash-run { @@ -219,7 +243,7 @@ function r2ensource { echo "Enabling $_id" done sort $_tmp > "$RBASH_CONFIG" - rm $_tmp + rm $_tmp "$RBASH_MERGED" } function r2dissource { @@ -246,7 +270,7 @@ function r2dissource { _dis=$( mktemp ) sh -c "grep -v $_opts \"$RBASH_CONFIG\"" > $_dis sort $_dis > $RBASH_CONFIG - rm $_dis + rm $_dis "$RBASH_MERGED" } export PS1='This is \e[1;3m\e[0m: \w\n\$ '