2024-06-01 23:58:09 +00:00
|
|
|
declare LIB_PATH=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) )
|
2024-06-01 21:57:13 +00:00
|
|
|
|
|
|
|
########################
|
|
|
|
# Function: dep_exists
|
|
|
|
# Usage: You provide it a utility name and it checks to see if it can find an
|
|
|
|
# executable of the same name in path
|
|
|
|
function dep_exists () {
|
|
|
|
local DEP_UTIL=${1:?"$FUNCNAME: No dep utility was provided for search"}
|
|
|
|
for path in ${PATH//:/ }; do
|
|
|
|
if [[ -x $path/$DEP_UTIL ]]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
# The above is just more bash friendly since it can be error handled better
|
|
|
|
## OR
|
|
|
|
# find ${PATH//:/ } -name $DEP_UTIL -executable | grep $DEP_UTIL
|
|
|
|
# return $?
|
|
|
|
|
|
|
|
echo "$FUNCNAME: $DEP_UTIL is not installed, or is not in path"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
####################
|
|
|
|
# Function: import
|
|
|
|
# Usage: You provide the script/lib name that you want to import from the LIB_PATH
|
|
|
|
function import () {
|
|
|
|
local LIB_NAME=${1:?"$FUNCNAME: No lib provided for import"}
|
|
|
|
## Fixing lib_name in case user/dev provides a non *.sh ending script (as all should have extension)
|
|
|
|
if [[ ${LIB_NAME##*.} != 'sh' ]]; then
|
|
|
|
LIB_NAME=${LIB_NAME}.sh
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Creating REGEX pattern to match if lib has already been sourced
|
|
|
|
local SOURCED_LIBS_REGEX="($( IFS='|'; echo "${BASH_SOURCE[*]}" ))"
|
|
|
|
if [[ $LIB_NAME =~ ^$SOURCED_LIBS_REGEX$ ]]; then
|
|
|
|
echo "$FUNCNAME: This lib ($LIB_NAME) has already been sourced"
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
## Getting FULL PATH for convinence
|
|
|
|
FULLPATH=$LIB_PATH/$LIB_NAME
|
|
|
|
|
|
|
|
if [[ -f $FULLPATH ]]; then
|
|
|
|
. $FULLPATH
|
|
|
|
else
|
|
|
|
echo "$FUNCNAME: $LIB_NAME ($FULLPATH) does not exist or is not accessible by you."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
}
|