summary refs log tree commit diff stats
path: root/hooks/post-up/zsh
blob: 085240df0a6a8910b67909b7bc3fb2f04026d5c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env zsh
ZDOTDIR="${XDG_CONFIG_HOME:=~/.config}/zsh"

pushd $ZDOTDIR
for f in z*(-.)
do
	[[ -e .$f ]] || ln $f .$f
done
popd

if [[ ! -d ~/.cache/zsh ]]
then
	mkdir -p ~/.cache/zsh
fi

fasd_cache=~/.cache/zsh/fasd-init-zsh
if [[ -s $commands[fasd] && (! -s "$fasd_cache" || $commands[fasd] -nt "$fasd_cache") ]]; then
	fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install >! "$fasd_cache"
fi

autoload -U zrecompile
local -a zfiles
zfiles=(
	$fasd_cache
	$ZDOTDIR/zshrc
)

if [[ -f $ZDOTDIR/${HOST%%.*}.zsh ]]; then
	zfiles+=$ZDOTDIR/${HOST%%.*}.zsh
fi
if [[ $OSTYPE == freebsd* ]]; then
	zfiles+=$ZDOTDIR/freebsd.zsh
fi

zrecompile -p -R $ZDOTDIR/.zshrc.zwc $zfiles -- \
	-M .cache/zsh/compdump

for fp in $ZDOTDIR/functions/*(/); do
	zrecompile -p $fp $fp/*
done