dotfiles/bootstrap.sh

37 lines
1.1 KiB
Bash
Raw Normal View History

2014-04-08 05:50:21 -07:00
#!/bin/sh
2013-09-30 22:21:02 -07:00
case `uname` in
'Darwin')
readlink_command='greadlink'
;;
*)
readlink_command='readlink'
esac
2014-04-08 05:50:21 -07:00
DOTFILES_DIRECTORY="$(dirname "${BASH_SOURCE}" | xargs "${readlink_command}" -f)/dotfiles"
2013-09-25 16:38:16 -07:00
function symlink_dotfiles() {
2014-04-08 05:50:21 -07:00
cd $DOTFILES_DIRECTORY
[[ -a ~/.dotfiles-backups ]] && mv ~/.dotfiles-backups ~/.dotfiles-backups.old
mkdir ~/.dotfiles-backups
for filename in *; do
local link_destination="$HOME/.$filename"
2014-04-08 11:00:25 -07:00
local absolute_path="$(readlink -f $filename)"
2014-04-08 05:50:21 -07:00
echo "linking $link_destination to $absolute_path"
2014-04-08 04:08:57 -07:00
[[ -a $link_destination ]] && mv $link_destination ~/.dotfiles-backups
ln -si $absolute_path $link_destination
2013-09-25 16:38:16 -07:00
done
2014-04-08 05:50:21 -07:00
[[ -a ~/.dotfiles-backups ]] && mv ~/.dotfiles-backups.old ~/.dotfiles-backups/.dotfiles-backups
2011-09-05 20:19:31 +02:00
}
2011-09-05 20:19:31 +02:00
if [ "$1" == "--force" -o "$1" == "-f" ]; then
2014-04-08 05:50:21 -07:00
symlink_dotfiles
2011-09-05 20:19:31 +02:00
else
2014-04-08 05:50:21 -07:00
read -p "Symlinking files from $DOTFILES_DIRECTORY. This may overwrite existing files in your home directory. Do you wish to proceed? (y/n) " -n 1
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
symlink_dotfiles
fi
2011-09-05 20:19:31 +02:00
fi
2014-04-08 05:50:21 -07:00
unset symlink_dotfiles
2014-04-08 05:50:21 -07:00
unset DOTFILES_DIRECTORY