summary refs log tree commit diff stats
path: root/git-hooks
diff options
context:
space:
mode:
authorAlan Pearce2013-05-18 21:00:12 +0100
committerAlan Pearce2013-05-18 21:00:12 +0100
commit5649afdf7e4ab16bbbe8f9fb9c487125efa76b5f (patch)
treeff5c03fb808b37734c59615d94b88553f03e4d40 /git-hooks
parent9c6faab4adf09bd93e3ae84174df220538fa9a0b (diff)
downloaddotfiles-5649afdf7e4ab16bbbe8f9fb9c487125efa76b5f.tar.lz
dotfiles-5649afdf7e4ab16bbbe8f9fb9c487125efa76b5f.tar.zst
dotfiles-5649afdf7e4ab16bbbe8f9fb9c487125efa76b5f.zip
Migrate zsh file compilation to post-checkout hook
Diffstat (limited to 'git-hooks')
-rwxr-xr-xgit-hooks/post-checkout26
1 files changed, 26 insertions, 0 deletions
diff --git a/git-hooks/post-checkout b/git-hooks/post-checkout
index dfceaee..910716f 100755
--- a/git-hooks/post-checkout
+++ b/git-hooks/post-checkout
@@ -4,3 +4,29 @@ then
 	emacs --batch -f batch-byte-compile ~/.emacs.d/init.el
 	emacs --batch -f batch-byte-compile ~/.emacs.d/elisp/*.el
 fi
+
+fasd_cache=~/.zsh/cache/fasd-init-zsh
+if [[ ! -s "$fasd_cache" || zsh/functions/fasd -nt "$fasd_cache" ]]; then
+	zsh/functions/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=(
+	zsh/functions/fasd/fasd
+	$fasd_cache
+	zsh/zshrc
+	zsh/zshrc_${HOST%%.*}
+)
+if [[ -e /usr/bin/emerge ]]; then
+	zfiles+=zsh/zshrc_gentoo
+fi
+if [[ $OSTYPE == freebsd ]]; then
+	zfiles+=zsh/zshrc_freebsd
+fi
+
+zrecompile -p -R ~/.zshrc.zwc $zfiles
+
+for fp in zsh/functions/*(/); do
+	zrecompile -p $fp $fp/*
+done