From 921ea9ac7675a0579814f8811e1663b3ddd042ab Mon Sep 17 00:00:00 2001 From: Terminal for Life <31768530+terminalforlife@users.noreply.github.com> Date: Sun, 27 Dec 2020 15:14:50 +0000 Subject: [PATCH] Optimizations to reloader.bash (#1749) * Optimized statement with REGEX by using `case` REGEX is a great feature of BASH, but in this case it was energy needlessly spent. A `case` statement suffices. Bring in REGEX when you're going to make good use of it, otherwise it's just going to bog down your code. I also wanted to strip the ` || exit 1` on the last line, but I wasn't sure if this file is meant to be sourced or not; if not, then exiting like that is redundant because it will already exit with whichever status the last command provides, unless `popd` specifically offers unhelpful or no exit statuses. * Optimize as before but with 2nd REGEX instance This time is much like the last commit, so I won't repeat, but I will say that you're using a double- or even triple-negative, which obfuscates your goal. Where you were doing... [ ! -n VAR ] && You were basically saying this convolution: If it's true that it's not true that VAR is not empty. Very confusing. Instead, I've opted for: If it's true that Var is empty. Makes immediate sense and is easier to parse, visually speaking. --- scripts/reloader.bash | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/scripts/reloader.bash b/scripts/reloader.bash index 9563e525..e5fb4e39 100644 --- a/scripts/reloader.bash +++ b/scripts/reloader.bash @@ -11,12 +11,15 @@ function _set-prefix-based-on-path() if [ "$1" != "skip" ] && [ -d "./enabled" ]; then _bash_it_config_type="" - if [[ "${1}" =~ ^(alias|completion|plugin)$ ]]; then - _bash_it_config_type=$1 - _log_debug "Loading enabled $1 components..." - else - _log_debug "Loading all enabled components..." - fi + + case $1 in + alias|completion|plugin) + _bash_it_config_type=$1 + _log_debug "Loading enabled $1 components..." ;; + *|'') + _log_debug "Loading all enabled components..." ;; + esac + for _bash_it_config_file in $(sort <(compgen -G "./enabled/*${_bash_it_config_type}.bash")); do if [ -e "${_bash_it_config_file}" ]; then _set-prefix-based-on-path "${_bash_it_config_file}" @@ -29,19 +32,21 @@ if [ "$1" != "skip" ] && [ -d "./enabled" ]; then done fi - -if [ ! -z "${2}" ] && [[ "${2}" =~ ^(aliases|completion|plugins)$ ]] && [ -d "${2}/enabled" ]; then - _log_warning "Using legacy enabling for $2, please update your bash-it version and migrate" - for _bash_it_config_file in $(sort <(compgen -G "./${2}/enabled/*.bash")); do - if [ -e "$_bash_it_config_file" ]; then - _set-prefix-based-on-path "${_bash_it_config_file}" - _log_debug "Loading component..." - # shellcheck source=/dev/null - source "$_bash_it_config_file" - else - echo "Unable to locate ${_bash_it_config_file}" > /dev/stderr - fi - done +if [ -n "${2}" ] && [ -d "${2}/enabled" ]; then + case $2 in + aliases|completion|plugins) + _log_warning "Using legacy enabling for $2, please update your bash-it version and migrate" + for _bash_it_config_file in $(sort <(compgen -G "./${2}/enabled/*.bash")); do + if [ -e "$_bash_it_config_file" ]; then + _set-prefix-based-on-path "${_bash_it_config_file}" + _log_debug "Loading component..." + # shellcheck source=/dev/null + source "$_bash_it_config_file" + else + echo "Unable to locate ${_bash_it_config_file}" > /dev/stderr + fi + done ;; + esac fi unset _bash_it_config_file