39 lines
690 B
Bash
39 lines
690 B
Bash
#!/usr/bin/env zsh
|
|
# Eryn Wells <eryn@erynwells.me>
|
|
|
|
function load_module
|
|
{
|
|
local mod=$1
|
|
if [[ -z "$mod" ]]; then
|
|
print "Missing argument: path to module to load." >&2
|
|
return -1
|
|
fi
|
|
|
|
# Make sure $mod isn't already in $fpath
|
|
local modpath
|
|
for p in $fpath; do
|
|
modpath=$p/$mod
|
|
[[ -d $modpath ]] && break
|
|
modpath=''
|
|
done
|
|
|
|
if [[ -z "$modpath" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
fpath+=($modpath)
|
|
|
|
for file in $modpath/*; do
|
|
if [[ -f "$file" ]]; then
|
|
autoload $func
|
|
fi
|
|
|
|
if [[ -d "$file" ]]; then
|
|
load_module "$file"
|
|
fi
|
|
done
|
|
|
|
return 0
|
|
}
|
|
|
|
load_module "$@"
|