diff options
author | Tharre <tharre3@gmail.com> | 2016-10-07 20:53:06 +0000 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2016-10-16 15:23:59 +0000 |
commit | edbcca8cd2b93b8c88eb62c431d04ea832b73180 (patch) | |
tree | bac188c0ee4c1c214dd50568e70783a7ee2c3565 /install.sh | |
parent | d4f1a0f27100ff2f4380fa4cf38b09e7f0c051f7 (diff) | |
download | dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.tar.gz dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.tar.xz dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.zip |
Reorganise dotfiles
Diffstat (limited to 'install.sh')
-rwxr-xr-x | install.sh | 109 |
1 files changed, 44 insertions, 65 deletions
@@ -1,69 +1,48 @@ #!/bin/sh -e -dotfiles=$(pwd) - -# make sure all submodules are there -git submodule update --init --recursive - -# [zsh] -ln -sf "$dotfiles/shell/_zshrc" "$HOME/.zshrc" -ln -sfT "$dotfiles/shell/_oh-my-zsh" "$HOME/.oh-my-zsh" -ln -sfT "$dotfiles/shell/themes" "$HOME/.oh-my-zsh/custom/themes" - -# [vim] -ln -sf "$dotfiles/shell/_vimrc" "$HOME/.vimrc" -ln -sfT "$dotfiles/shell/_vim" "$HOME/.vim" - -# [git] -ln -sf "$dotfiles/shell/_gitconfig" "$HOME/.gitconfig" - -# [tmux] -ln -sf "$dotfiles/shell/_tmux.conf" "$HOME/.tmux.conf" - -# [gdb] -ln -sf "$dotfiles/shell/_gdbinit" "$HOME/.gdbinit" - -# [gpg] -ln -sfT "$dotfiles/shell/_gnupg" "$HOME/.gnupg" - -# [emacs] -ln -sfT "$dotfiles/shell/_emacs.d" "$HOME/.emacs.d" - -# [user dirs] -ln -sf "$dotfiles/config/user-dirs.dirs" "$HOME/.config/user-dirs.dirs" - -# [eclim] -ln -sf "$dotfiles/shell/_eclimrc" "$HOME/.eclimrc" - -# create directories -mkdir -p ~/bin -mkdir -p ~/etc -mkdir -p ~/share -mkdir -p ~/media -mkdir -p ~/media/games -mkdir -p ~/media/music -mkdir -p ~/media/pictures -mkdir -p ~/media/videos -mkdir -p ~/var -mkdir -p ~/var/cache -mkdir -p ~/var/downloads -mkdir -p ~/var/log -mkdir -p ~/var/run -mkdir -p ~/var/tmp -mkdir -p ~/var/vim -mkdir -p ~/var/VMs - -if [ "$1" = "arch" ]; then - echo "Performing full installation." - - # [arch linux] - ln -sf "$dotfiles/shell/_makepkg.conf" "$HOME/.makepkg.conf" - - # [email] - ln -sfT "$dotfiles/email/_mutt" "$HOME/.mutt" - ln -sf "$dotfiles/email/_offlineimaprc" "$HOME/.offlineimaprc" - ln -sf "$dotfiles/email/_msmtprc" "$HOME/.msmtprc" +if [ "$#" -ne 1 ]; then + # make sure all submodules are there + git submodule update --init --recursive + + # create directories + mkdir -p ~/bin + mkdir -p ~/etc + mkdir -p ~/share + mkdir -p ~/media + mkdir -p ~/media/games + mkdir -p ~/media/music + mkdir -p ~/media/pictures + mkdir -p ~/media/videos + mkdir -p ~/var + mkdir -p ~/var/cache + mkdir -p ~/var/downloads + mkdir -p ~/var/log + mkdir -p ~/var/run + mkdir -p ~/var/tmp + mkdir -p ~/var/vim + mkdir -p ~/var/VMs mkdir -p ~/.mail -fi -echo "Finished installing dotfiles" + find . -maxdepth 1 ! -path . ! -name .git ! -name .gitmodules \ + ! -name .gitignore ! -name .updated -name '.*' -exec "$0" {} \; + + echo "Finished installing dotfiles" +else + canonical=$(echo $1 | sed "s|^\./||") + target="$HOME/$canonical" + origin="$(pwd)/$canonical" + + if [ ! -e "$target" ] || [ -L "$target" ]; then + # target either doesn't exist or is a symbolic link and can thus be + # safely replaced + ln -sfT "$origin" "$target" + elif [ -d "$target" ]; then + # target is not a symbolic link, but a directory, thus we link + # everything into that directory instead + + find "$canonical" -maxdepth 1 -mindepth 1 ! -name .gitignore \ + -exec "$0" {} \; + else + echo "Target file '$target' is not a symlink but exists, skipping" + fi +fi |