#!/bin/bash HOMEDIR=$HOME/.homedir # For most files, its enough to check if the file exists, make a backup and link the .homedir file instead. files=".vim .vimrc .bashrc .bash_aliases .bash_colors .gitconfig .npmrc" for file in $files do echo "Processing $file" if [ -f $HOMEDIR/$file ] then TYPE="file" elif [ -d $HOMEDIR/$file ] then TYPE="dir" else echo "File not found. Skipping" continue fi if [ -L $HOME/$file ] then if [ `readlink -f $HOME/$file` == $HOMEDIR/$file ] then echo "There's already a link to homedir." continue else echo "Wrong link found. Deleting it." rm $HOME/$file fi fi if [ -f $HOME/$file -o -d $HOME/$file ] then echo "File exists in home. Creating backup." FOLDER="`hostname`-$USER-backup" mkdir -p $HOMEDIR/$FOLDER mv $HOME/$file "$HOMEDIR/$FOLDER/$file" fi echo "Linking to $file" ln -s $HOMEDIR/$file $HOME/$file done # These files only make sense in certain environments files=".config/sublime-text-3/Packages/User/Package\ Control.sublime-settings .config/sublime-text-3/Packages/User/Preferences.sublime-settings" if [ `which subl` ] then for file in $files do echo "Processing $file" done else echo "Sublime not found. Skipping files $files." fi