declare LIB_PATH=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) ) ######################## # 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 }