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
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
|
|
}
|