#!/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 "$@"
