From 51a0ae33695c8cfced3dbe35ba76c91d5fc14362 Mon Sep 17 00:00:00 2001 From: John D Pell Date: Tue, 25 Jan 2022 15:14:13 -0800 Subject: [PATCH 1/2] lib/helpers: remove log message from `_command_exists()` et al - and move them to `lib/utilities` --- lib/helpers.bash | 61 -------------------------------------- lib/utilities.bash | 36 +++++++++++++++++++++++ test/lib/helpers.bats | 40 ------------------------- test/lib/utilities.bats | 65 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 101 insertions(+), 101 deletions(-) mode change 100644 => 100755 test/lib/utilities.bats diff --git a/lib/helpers.bash b/lib/helpers.bash index c0ce2eb3e2..76555fbecb 100644 --- a/lib/helpers.bash +++ b/lib/helpers.bash @@ -22,51 +22,6 @@ else BASH_IT_SED_I_PARAMETERS=('-i' '') fi -function _command_exists() { - _about 'checks for existence of a command' - _param '1: command to check' - _param '2: (optional) log message to include when command not found' - _example '$ _command_exists ls && echo exists' - _group 'lib' - local msg="${2:-Command '$1' does not exist}" - if type -t "$1" > /dev/null; then - return 0 - else - _log_debug "$msg" - return 1 - fi -} - -function _binary_exists() { - _about 'checks for existence of a binary' - _param '1: binary to check' - _param '2: (optional) log message to include when binary not found' - _example '$ _binary_exists ls && echo exists' - _group 'lib' - local msg="${2:-Binary '$1' does not exist}" - if type -P "$1" > /dev/null; then - return 0 - else - _log_debug "$msg" - return 1 - fi -} - -function _completion_exists() { - _about 'checks for existence of a completion' - _param '1: command to check' - _param '2: (optional) log message to include when completion is found' - _example '$ _completion_exists gh && echo exists' - _group 'lib' - local msg="${2:-Completion for '$1' already exists}" - if complete -p "$1" &> /dev/null; then - _log_debug "$msg" - return 0 - else - return 1 - fi -} - function _bash_it_homebrew_check() { if _binary_exists 'brew'; then # Homebrew is installed @@ -203,22 +158,6 @@ function bash-it() { fi } -function _is_function() { - _about 'sets $? to true if parameter is the name of a function' - _param '1: name of alleged function' - _param '2: (optional) log message to include when function not found' - _group 'lib' - _example '$ _is_function ls && echo exists' - _group 'lib' - local msg="${2:-Function '$1' does not exist}" - if LC_ALL=C type -t "$1" | _bash-it-egrep -q 'function'; then - return 0 - else - _log_debug "$msg" - return 1 - fi -} - function _bash-it-aliases() { _about 'summarizes available bash_it aliases' _group 'lib' diff --git a/lib/utilities.bash b/lib/utilities.bash index 8ea6b98c24..f2f12520ab 100644 --- a/lib/utilities.bash +++ b/lib/utilities.bash @@ -72,6 +72,42 @@ function _bash-it-egrep() { "${BASH_IT_GREP:-/usr/bin/grep}" -E "$@" } +function _command_exists() { + : _about 'checks for existence of a command' + : _param '1: command to check' + : _example '$ _command_exists ls && echo exists' + : _group 'lib' + + type -t "${1?}" > /dev/null +} + +function _binary_exists() { + : _about 'checks for existence of a binary' + : _param '1: binary to check' + : _example '$ _binary_exists ls && echo exists' + : _group 'lib' + + type -P "${1?}" > /dev/null +} + +function _completion_exists() { + : _about 'checks for existence of a completion' + : _param '1: command to check' + : _example '$ _completion_exists gh && echo exists' + : _group 'lib' + + complete -p "${1?}" &> /dev/null +} + +function _is_function() { + : _about 'sets $? to true if parameter is the name of a function' + : _param '1: name of alleged function' + : _example '$ _is_function ls && echo exists' + : _group 'lib' + + declare -F "${1?}" > /dev/null +} + ########################################################################### # Component-specific functions (component is either an alias, a plugin, or a # completion). diff --git a/test/lib/helpers.bats b/test/lib/helpers.bats index 38a917fe95..8648483e5a 100644 --- a/test/lib/helpers.bats +++ b/test/lib/helpers.bats @@ -20,46 +20,6 @@ function local_setup() { assert_file_exist "$BASH_IT/profiles/test-bad-type.bash_it" } -@test "helpers: _command_exists function exists" { - run type -a _command_exists &> /dev/null - assert_success -} - -@test "helpers: _command_exists function positive test ls" { - run _command_exists ls - assert_success -} - -@test "helpers: _command_exists function positive test bash-it" { - run _command_exists bash-it - assert_success -} - -@test "helpers: _command_exists function negative test" { - run _command_exists __addfkds_dfdsjdf - assert_failure -} - -@test "helpers: _binary_exists function exists" { - run type -a _binary_exists &> /dev/null - assert_success -} - -@test "helpers: _binary_exists function positive test ls" { - run _binary_exists ls - assert_success -} - -@test "helpers: _binary_exists function negative test function" { - run _binary_exists _binary_exists - assert_failure -} - -@test "helpers: _binary_exists function negative test" { - run _binary_exists __addfkds_dfdsjdf - assert_failure -} - @test "helpers: bash-it help aliases ag" { run bash-it help aliases "ag" assert_line -n 0 "ag='ag --smart-case --pager=\"less -MIRFX'" diff --git a/test/lib/utilities.bats b/test/lib/utilities.bats old mode 100644 new mode 100755 index 78913870e5..aa7e39b67f --- a/test/lib/utilities.bats +++ b/test/lib/utilities.bats @@ -6,6 +6,71 @@ function local_setup_file() { setup_libs "helpers" } +@test "utilities: _is_function: _command_exists" { + run _is_function _command_exists + assert_success +} + +@test "utilities: _command_exists function positive test ls" { + run _command_exists ls + assert_success +} + +@test "utilities: _command_exists function positive test bash-it" { + run _command_exists bash-it + assert_success +} + +@test "utilities: _command_exists function negative test" { + run _command_exists "__addfkds_dfdsjdf_${RANDOM:-}" + assert_failure +} + +@test "utilities: _is_function: _binary_exists" { + run _is_function _binary_exists + assert_success +} + +@test "utilities: _binary_exists function positive test ls" { + run _binary_exists ls + assert_success +} + +@test "utilities: _binary_exists function negative test function" { + run _binary_exists _binary_exists + assert_failure +} + +@test "utilities: _binary_exists function negative test" { + run _binary_exists "__addfkds_dfdsjdf_${RANDOM:-}" + assert_failure +} + +@test "utilities: _is_function: _completion_exists" { + run _is_function _completion_exists + assert_success +} + +@test "utilities: _is_function new function" { + local teh_new_func="__addfkds_dfdsjdf_${RANDOM:-}" + run _is_function "${teh_new_func?}" + assert_failure + + cite "${teh_new_func?}" + run _is_function "${teh_new_func?}" + assert_success +} + +@test "utilities: _command_exists new function" { + local teh_new_func="__addfkds_dfdsjdf_${RANDOM:-}" + run _command_exists "${teh_new_func?}" + assert_failure + + cite "${teh_new_func?}" + run _command_exists "${teh_new_func?}" + assert_success +} + @test "_bash-it-component-item-is-enabled() - for a disabled item" { run _bash-it-component-item-is-enabled aliases svn assert_failure From 9ed8cddc8a993e69239924061276a959fef5af37 Mon Sep 17 00:00:00 2001 From: John D Pell Date: Thu, 3 Feb 2022 18:18:21 -0800 Subject: [PATCH 2/2] lib/utilities: use `$XDG_CACHE_HOME` properly We should fall back to the default location, not use an entirely different one. --- lib/utilities.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utilities.bash b/lib/utilities.bash index f2f12520ab..0afdbee43b 100644 --- a/lib/utilities.bash +++ b/lib/utilities.bash @@ -211,7 +211,7 @@ function _bash-it-component-item-is-enabled() { component_type="${1}" item_name="${2?}" fi - for each_file in "${BASH_IT}/enabled"/*"${BASH_IT_LOAD_PRIORITY_SEPARATOR?}${item_name}.${component_type}"*."bash" \ + for each_file in "${BASH_IT?}/enabled"/*"${BASH_IT_LOAD_PRIORITY_SEPARATOR?}${item_name}.${component_type}"*."bash" \ "${BASH_IT}/${component_type}"*/"enabled/${item_name}.${component_type}"*."bash" \ "${BASH_IT}/${component_type}"*/"enabled"/*"${BASH_IT_LOAD_PRIORITY_SEPARATOR?}${item_name}.${component_type}"*."bash"; do if [[ -f "${each_file}" ]]; then