Index: create_symlinks.sh ================================================================== --- create_symlinks.sh +++ create_symlinks.sh @@ -1,31 +1,42 @@ #!/bin/sh rel_dir="${PWD#$HOME/}" echo "Configs relative to home in $rel_dir." link_file() { - if [ ! -f "$HOME/$2" ]; then + 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..." + echo "$HOME/$2 already exists, skipping…" fi } -link_file gitconfig .gitconfig -mkdir -p $HOME/.gnupg -link_file gpg.conf .gnupg/gpg.conf ../ -link_file tmux.conf .tmux.conf -link_file vim .vim -link_file vimrc .vimrc -link_file config/fish .config/fish ../ -mkdir -p $HOME/.config/youtube-dl -link_file config/youtube-dl/config .config/youtube-dl/config ../../ -link_file zshrc .zshrc +mkdir -p $HOME/.config +which git >/dev/null 2>&1 && link_file gitconfig .gitconfig +if which gpg >/dev/null 2>&1 || which gpg2 >/dev/null 2>&1; then + mkdir -p $HOME/.gnupg + link_file gpg.conf .gnupg/gpg.conf ../ +fi +which tmux >/dev/null 2>&1 && link_file tmux.conf .tmux.conf +if which vim >/dev/null 2>&1; then + link_file vim .vim + link_file vimrc .vimrc +fi +which fish >/dev/null 2>&1 && link_file config/fish .config/fish ../ +which youtube-dl >/dev/null 2>&1 && link_file config/youtube-dl .config/youtube-dl ../ +which zsh >/dev/null 2>&1 && link_file zshrc .zshrc if test x"$(uname -s)" = x"Darwin"; then - link_file eu_US.keylayout \ - "Library/Keyboard Layouts/eu_US.keylayout" ../../ -else + 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