blob: 9176902cf38078112dac0dacf8a18cbb64bebb2c (
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/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
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/*
if [[ -d ~/Library/LaunchAgents ]]
then
install-dot ~/Library/LaunchAgents $target/launchagents/*
fi
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 [[ -s $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
|