#!/bin/sh
rel_dir="${PWD#$HOME/}"
echo "Configs relative to home in $rel_dir."
link_file() {
if [ ! -e "$HOME/$2" ]; then
echo "Symlinking $HOME/$2 -> $3$rel_dir/$1…"
ln -s "$3$rel_dir/$1" "$HOME/$2"
else
echo "$HOME/$2 already exists, skipping…"
fi
}
mkdir -p $HOME/.config
which cvs >/dev/null 2>&1 && link_file cvsrc .cvsrc
which fish >/dev/null 2>&1 && link_file fish .config/fish ../
if which fossil >/dev/null 2>&1; then
echo "Setting global fossil settings…"
fossil set --global autosync 0
fossil set --global editor 'vim -c "se ft=gitcommit"'
fossil set --global mv-rm-files 1
gpg_args="-u 35E1AF8B --clearsign -o"
if which gpg2 >/dev/null 2>&1; then
fossil set --global clearsign 1
fossil set --global pgp-command "gpg2 $gpg_args"
elif which gpg >/dev/null 2>&1; then
fossil set --global clearsign 1
fossil set --global pgp-command "gpg $gpg_args"
fi
fi
which git >/dev/null 2>&1 && link_file git .config/git ../
if which gpg >/dev/null 2>&1 || which gpg2 >/dev/null 2>&1; then
mkdir -p $HOME/.local/share/gnupg
link_file gpg.conf .local/share/gnupg/gpg.conf ../../../
fi
which tmux >/dev/null 2>&1 && link_file tmux .config/tmux ../
which vim >/dev/null 2>&1 && link_file vim .config/vim ../
which youtube-dl >/dev/null 2>&1 && link_file youtube-dl .config/youtube-dl ../
which zsh >/dev/null 2>&1 && link_file zshrc .zshrc
if test x"$(uname -s)" = x"Darwin"; then
dest="$HOME/Library/Keyboard Layouts/eu_US.keylayout"
# This does not like being symlinked…
if [ ! -e "$dest" ]; then
echo "Hardlinking eu_US.keylayout -> $dest"
ln eu_US.keylayout "$dest"
else
echo "$dest already exists, skipping…"
fi
elif which startx >/dev/null 2>&1; then
link_file Xdefaults .Xdefaults
link_file Xmodmap .Xmodmap
link_file xinitrc .xinitrc
fi