dotfiles/setup.sh

136 lines
3.7 KiB
Bash
Raw Normal View History

2014-04-14 21:49:44 -06:00
#!/usr/bin/env bash
cd `dirname $BASH_SOURCE` && source resources/bootstrapping.sh
source dotfiles/lib/shellrc/functions.sh
source dotfiles/lib/shellrc/brew.sh
source dotfiles/lib/shellrc/python.sh
2014-08-25 21:18:08 -06:00
source dotfiles/lib/shellrc/vim.sh
source resources/osx.sh
DOTFILES_DIRECTORY="$(dotfiles_abspath)/dotfiles"
function symlink_dotfiles() {
2014-08-25 21:06:54 -06:00
local overwrite=''
OPTIND=1
while getopts "o" OPTCHAR;
do
case $OPTCHAR in
o)
overwrite='yes'
;;
esac
done
cd $DOTFILES_DIRECTORY
[ -a ~/.dotfiles-backups ] && mv ~/.dotfiles-backups ~/.dotfiles-backups.old
mkdir ~/.dotfiles-backups
for filename in *; do
local link_destination="$HOME/.$filename"
local link_target=$(${readlink_command} -f $filename)
echo "linking $link_destination to $link_target"
# Using only test -e doesn't work here because it will return
# false if the destination of the symbolic link at does not exist.
2014-08-25 21:06:54 -06:00
test -e $link_destination || test -L $link_destination && test $overwrite && mv $link_destination ~/.dotfiles-backups && ln -si $link_target $link_destination
done
[ -a ~/.dotfiles-backups.old ] && mv ~/.dotfiles-backups.old ~/.dotfiles-backups/.dotfiles-backups
}
2014-05-02 15:11:27 -06:00
function symlink_dotfiles_prompt() {
2014-08-25 21:06:54 -06:00
read -p "Symlinking files from $DOTFILES_DIRECTORY. This ? (y/n) " -n 1
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo
symlink_dotfiles
fi
2014-08-25 18:06:42 -06:00
}
2014-08-25 21:06:54 -06:00
function apt-get() {
INSTALL="sudo apt-get -y install"
$INSTALL zsh
$INSTALL tmux
$INSTALL emacs24-nox
$INSTALL nmap
$INSTALL python2.7
$INSTALL python-pip python-dev
}
function setup_help() {
echo "setup Usage:
-a Install apt-get packages.
-o Run OSX configuration commands.
-s Symlink dotfiles to home directory.
-b Install brew packages.
-p Install python packages.
2014-08-25 21:18:08 -06:00
-v Setup vim.
2014-08-25 21:06:54 -06:00
-e Do absolutely everything with the most aggresive options.
-h display this help message."
}
2014-05-02 15:11:27 -06:00
2014-08-25 21:31:11 -06:00
function get_command_line_tools() {
hash gcc 2> /dev/null || xcode-select --install
}
function setup() {
if [[ $# -eq 0 ]] ; then
setup_help
exit 0
fi
2014-08-25 21:31:11 -06:00
while getopts "acosbpev" OPTCHAR;
2014-08-25 18:06:42 -06:00
do
local real_opt_ind=$OPTIND
2014-08-25 18:06:42 -06:00
case $OPTCHAR in
a)
source resources/apt-get.sh
;;
b)
2014-08-25 21:31:11 -06:00
get_command_line_tools
if get_brew; then
do_the_brew_help
read -p "Enter flags for brew package installation:
"
2014-08-25 21:31:11 -06:00
[[ $REPLY[0] != '-' ]] && REPLY="-$REPLY"
do_the_brew $REPLY
fi
;;
o)
sudo -v
osx_config
;;
s)
symlink_dotfiles_prompt
;;
p)
install_python_packages -h
read -p "Enter flags for python package installation"
if [[ $REPLY[0] != '-' ]]; then
REPLY="-$REPLY"
fi
install_python_packages $REPLY
;;
2014-08-25 21:06:54 -06:00
e)
case $(uname) in
2014-08-25 21:06:54 -06:00
Darwin)
2014-08-25 21:31:11 -06:00
get_command_line_tools
get_brew && do_the_brew -au
osx_config
2014-08-25 21:06:54 -06:00
;;
Linux)
apt-get
;;
esac
install_python_packages -a
symlink_dotfiles
2014-08-25 21:18:08 -06:00
vimstall
;;
v)
vimstall
2014-08-25 21:06:54 -06:00
;;
2014-08-25 18:06:42 -06:00
h)
setup_help
return
2014-08-25 18:06:42 -06:00
;;
esac
OPTIND=$real_opt_ind
done
2014-05-02 15:11:27 -06:00
}
setup $@