On Fri, Mar 29, 2013 at 12:41:46AM -0700, Linda Walsh wrote:
> include was designed to search the path for functions that
> are relative paths. While the normal sourcepath allows searching for
> filenames on the search path, I don't believe (please correct if I am wrong
> and this works now, as it would make life much simpler) that the PATH will
> be searched if you give it something like:
>
> source lib/Util/sourcefile.shh
Is that all you want? Here:
include() {
local paths dir
IFS=: read -ra paths <<< "$PATH"
for dir in "${paths[@]}"; do
if [[ -r $dir/$1 ]]; then
source "$dir/$1"
return
fi
done
echo "could not find '$1' in PATH" >&2
return 1
}