Add detection of a wrapper function to info.sh

This commit is contained in:
Ethan P 2020-02-25 13:54:31 -08:00 committed by David Peter
parent 39d9343a7d
commit 8648b86a73
1 changed files with 32 additions and 4 deletions

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
_modules=('system' 'bat' 'bat_config' 'bat_wrapper' 'tool')
_modules=('system' 'bat' 'bat_config' 'bat_wrapper' 'bat_wrapper_function' 'tool')
_modules_consented=()
@ -20,6 +20,10 @@ _bat_wrapper_:description() {
_collects "Any wrapper script used by 'bat'."
}
_bat_wrapper_function_description() {
_collects "The wrapper function surrounding 'bat' (if applicable)."
}
_system_:description() {
_collects "Operating system name."
_collects "Operating system version."
@ -46,7 +50,28 @@ _bat_config_:run() {
_bat_wrapper_:run() {
if file "$(which bat)" | grep "text executable" &>/dev/null; then
_out cat "$(which bat)"
return
fi
printf "\nNo wrapper script.\n"
}
_bat_wrapper_function_:run() {
case "$("$SHELL" --version | head -n 1)" in
*fish*)
if "$SHELL" --login -c 'type bat' 2>&1 | grep 'function' &>/dev/null; then
_out "$SHELL" --login -c 'functions bat'
fi ;;
*bash*)
if "$SHELL" --login -c 'type bat' 2>&1 | grep 'function' &>/dev/null; then
_out "$SHELL" --login -c 'declare -f bat'
fi ;;
*)
echo "Unable to determine if a wrapper function is set."
return ;;
esac
printf "\nNo wrapper function.\n"
}
_system_:run() {
@ -65,11 +90,14 @@ _tool_:run() {
# Functions:
# -----------------------------------------------------------------------------
_out() {
_print_command() {
printf "\n+" 1>&2
printf " %s" "$@" 1>&2
printf "\n" 1>&2
}
_out() {
_print_command "$@"
"$@" 2>&1
}
@ -107,8 +135,8 @@ EOF
_tput sgr0
declare -f "_$1_:run" \
| sed 's/^ *//; s/;$//' \
| grep '^_out ' \
| sed 's/^_out //' 1>&2
| grep '^_out\([21]*\) ' \
| sed 's/^_out\([21]*\) //' 1>&2
# Prompt
printf "\n" 1>&2