#!/usr/bin/env zsh # Eryn Wells 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 "$@"