X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/d851861997240e29ef459999b673d32967492bea..6a5f3187cb8cc0d7d3463ff97dddd415642c95b9:/.zsh/zshrc/82-load_alias-d diff --git a/.zsh/zshrc/82-load_alias-d b/.zsh/zshrc/82-load_alias-d new file mode 100644 index 0000000..62e6e39 --- /dev/null +++ b/.zsh/zshrc/82-load_alias-d @@ -0,0 +1,38 @@ +# +# 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 + case "$s/$l" in + (*/\#*) continue;; + (/*) eval "alias $fn='${l//\$0/$fn}'"; s=s; 0=$fn;; + (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