fixed up install script
parent
8baa7c22b0
commit
e3a3288b83
@ -0,0 +1 @@
|
||||
backup
|
@ -1,37 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BACKUP_DIR="$HOME/.dotfiles_backup"
|
||||
BASE_DIR="$HOME/.dotfiles"
|
||||
INCLUDE=".bashrc .bash_profile .vimrc .vim .screenrc .tmux.conf"
|
||||
home="$HOME"
|
||||
base_dir="$home/.dotfiles"
|
||||
backup_dir="$home/.dotfiles/backup"
|
||||
vim_plugins_dir="$home/.vim/bundle"
|
||||
vundle_dir="$vim_plugins_dir/Vundle.vim"
|
||||
include=(
|
||||
.bash_profile
|
||||
.bashrc
|
||||
.screenrc
|
||||
.tmux.conf
|
||||
.vim/ftplugin/*.vim
|
||||
.vimrc
|
||||
)
|
||||
|
||||
if [[ -d "$BACKUP_DIR" ]] ; then
|
||||
echo "removing previous backup at $BACKUP_DIR"
|
||||
rm -rf "$BACKUP_DIR"
|
||||
if [[ -d "$backup_dir" ]] ; then
|
||||
echo "removing previous backup at $backup_dir"
|
||||
rm -rf "$backup_dir"
|
||||
fi
|
||||
|
||||
echo "backing up existing dotfiles into $BACKUP_DIR"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
for FNAME in $INCLUDE; do
|
||||
echo "backing up existing dotfiles into $backup_dir"
|
||||
mkdir -p "$backup_dir"
|
||||
for filename in ${include[@]}; do
|
||||
source_path="$base_dir/$filename"
|
||||
dest_path="$home/$filename"
|
||||
backup_path="$backup_dir/$filename"
|
||||
echo "file name: $filename"
|
||||
echo "source path: $source_path"
|
||||
echo "dest path: $dest_path"
|
||||
echo "backup path: $backup_path"
|
||||
|
||||
# if a file doesn't actually exist in the repo, do nothing.
|
||||
if [[ ! -a "$BASE_DIR/$FNAME" ]]; then
|
||||
echo "WARNING: file $BASE_DIR/$FNAME does not exist"
|
||||
if [[ ! -a "$source_path" ]]; then
|
||||
echo "no file found at source path $source_path, skipping"
|
||||
continue
|
||||
fi
|
||||
|
||||
# back up existing dotfiles, just for safety
|
||||
FULLPATH="$HOME/$FNAME"
|
||||
if [[ -a "$FULLPATH" && ! -h "$FULLPATH" ]]; then
|
||||
echo "mv $FULLPATH -> $BACKUP_DIR/$FNAME"
|
||||
mv "$FULLPATH" "$BACKUP_DIR/$FNAME"
|
||||
if [[ -a "$dest_path" ]]; then
|
||||
if [[ -h "$dest_path" ]]; then
|
||||
# existing file is a symlink. delete it.
|
||||
echo "removing old link at $dest_path"
|
||||
rm "$dest_path"
|
||||
else
|
||||
# existing file is an original preferences file. archive it.
|
||||
if [[ ! -d $(dirname "$backup_path") ]]; then
|
||||
mkdir -pv $(dirname "$backup_path")
|
||||
fi
|
||||
echo "archiving old preferences file at $dest_path"
|
||||
mv -v "$dest_path" "$backup_path"
|
||||
echo "ok we archived it"
|
||||
fi
|
||||
fi
|
||||
|
||||
# symlink in the versioned dotfiles.
|
||||
echo "ln $BASE_DIR/$FNAME" "$HOME/$FNAME"
|
||||
ln -sf "$BASE_DIR/$FNAME" "$HOME/$FNAME"
|
||||
echo "linking preferences file"
|
||||
ln -sv "$source_path" "$dest_path"
|
||||
echo "ok we linked it"
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
done
|
||||
|
||||
if [[ ! -d "$vim_plugins_dir" ]]; then
|
||||
mkdir -p "$vim_plugins_dir"
|
||||
fi
|
||||
|
||||
# setup Vundle
|
||||
echo "cloning Vundle"
|
||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||
if [[ ! -d $vundle_dir ]]; then
|
||||
echo "cloning Vundle"
|
||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||
fi
|
||||
|
||||
echo "installing Vim plugins"
|
||||
vim +PluginInstall +qall
|
||||
|
Loading…
Reference in New Issue