dotfiles/home/dot-local/lib/bash/common.sh

32 lines
681 B
Bash
Raw Normal View History

2022-02-03 18:33:04 +00:00
# -*- mode: bash -*-
function abort() {
local status="${1:?"abort requires status"}"
local reason="${2:?"abort requires reason"}"
shift 2
# here we want the string as template
# shellcheck disable=SC2059
printf "error: ${reason}\n" "$@" >&2
exit "${status}"
}
function has_software() {
for software in "$@"; do
type "${software}" >/dev/null 2>&1 ||
abort 1 $"%s not found in path\n" "${software}"
done
}
function import() {
local name path file
for name in "$@"; do
local IFS=:; set -o noglob
for path in ${IMPORTPATH}; do
file="${path}/${name}"
[[ -e "${file}" && -r "${file}" ]] && {
source "${file}" && continue 2 || return 1
}
done
done
}