You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
659 B
Bash

_LOADED_LIBS=()
include() {
local file
for file in "${@}"; do
if [[ -f "${XDG_DATA_HOME}/buddy/lib/${file}.bash" ]]; then
# shellcheck disable=SC1090
source "${XDG_DATA_HOME}/buddy/lib/${file}.bash"
elif [[ -f "${XDG_DATA_HOME}/buddy/lib/${file}.sh" ]]; then
# shellcheck disable=SC1090
source "${XDG_DATA_HOME}/buddy/lib/${file}.sh"
else
>&2 echo "include unknown: ${file}"
exit 1
fi
done
}
require() {
local file
local previous
for file in "${@}"; do
for previous in "${_LOADED_LIBS[@]}"; do
if [[ "${previous}" == "${file}" ]]; then
continue 2
fi
done
_LOADED_LIBS+=("${file}")
include "${file}"
done
}