# # Turn files in $apath directories into aliases # # Copyright © 1994–2017 martin f. krafft # Released under the terms of the Artistic Licence 2.0 # # Source repository: http://git.madduck.net/v/etc/zsh.git # function make_alias { emulate -L zsh setopt extendedglob local fn="${1:t}" s for l in ${(f)"$(<$1)"}; do 0=$fn case "$s/$l" in (*/\#*) continue;; (/\(\)*) eval "function $fn$l"; s=s;; (/*) eval "alias $fn='${l//\$0/$fn}'"; s=s;; (s/(#b)(*)) eval "$match[1]";; esac done } for ad in $apath; do if [ ! -d "$ad" ]; then zerror "no such directory: $ad" continue fi # zdebug "sourcing alias directory ${ad#$ZDOTDIR/}" for f in "$ad"/*(N.,@); do case "$f" in *~|*.bak|*.old|*.sw?|*.zwc|*.disabled) continue;; esac make_alias "$f" done done # vim:ft=zsh