#!/usr/bin/env zsh target=~/projects/dotfiles pushd $HOME setopt EXTENDED_GLOB if [[ ! -d $target ]] then mkdir -pv $target fi if [[ ! -d $target && ${(L)host} =~ prefect ]] then git clone git://github.com/alanpearce/dotfiles.git $target fi if [[ -d ~/Library/LaunchAgents ]] then ln -sf $target/launchagents/* ~/Library/LaunchAgents fi install-dot () { if [[ "$1" != . && ! -d $1 ]] then mkdir $1 fi for f in $@[2,-1] do if [[ ! -e $1$f:t ]] then ln -sf $f $1$f:t fi done } install-dot $target/.git/hooks/ $target/git-hooks/* install-dot .emacs.d/ $target/emacs/{init.el{,c},elisp} install-dot . $target/^install(.) $target/zsh/fasdrc install-dot .ssh/ $target/ssh/* ln -sf $target/zsh/environment.zsh .zshenv ln -sf $target/zsh/interactive.zsh .zshrc ln -sf $target/zsh/login.zsh .zlogin ln -sf $target/zsh/logout.zsh .zlogout if [[ -d projects/dwm ]] then install-dot projects/dwm/ $target/dwm/* fi if [[ -z $commands[emacs] ]] then emacs --batch --eval '(batch-byte-recompile-directory 0)' ~/.emacs.d/ fi if [[ ! -d ~/.zsh/cache ]] then mkdir -p ~/.zsh/cache fi fasd_cache=~/.zsh/cache/fasd-init-zsh if [[ ! -s "$fasd_cache" || $target/zsh/functions/fasd -nt "$fasd_cache" ]]; then $target/zsh/functions/fasd/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=( $target/zsh/functions/fasd/fasd $fasd_cache $target/zsh/interactive.zsh ) if [[ -f $target/zsh/${HOST%%.*}.zsh ]]; then zfiles+=$target/zsh/${HOST%%.*}.zsh fi if [[ $OSTYPE == freebsd* ]]; then zfiles+=$target/zsh/freebsd.zsh fi zrecompile -p -R ~/.zshrc.zwc $zfiles -- \ -M .zsh/cache/compdump for fp in $target/zsh/functions/*(/); do zrecompile -p $fp $fp/* done popd