function zshlibs_ensure() { target="${2}" typ="${1}" if ! test -e "${target}" then zshlibs_log zshlibs_ensure "creating '${target}' ($typ) …" case $typ in -d) mkdir -p "${target}" \ || zshlibs_log $0 "unable to create directory '${target}'" \ && return 2 ;; -f) touch "${target}" \ || zshlibs_log $0 "unable to create file '${target}'" \ && return 2 esac zshlibs_log zshlibs_ensure "target '${target}' created" elif test "${typ}" "${target}" then zshlibs_log zshlibs_ensure "target '${target}' ($typ) present" return 0 else zshlibs_log zshlibs_ensure "target '${target}' already exists and it is not a directory" return 1 fi }