X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/e45b0db3d66ca9e041622db3d801d026fb4d3724..33230b65afa1076218abff057d0bbcc7486af0a8:/.zsh/zshrc/00-load_alias-d diff --git a/.zsh/zshrc/00-load_alias-d b/.zsh/zshrc/00-load_alias-d new file mode 100644 index 0000000..d2683e7 --- /dev/null +++ b/.zsh/zshrc/00-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;; + (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