106 lines
3.2 KiB
Bash
Executable file
106 lines
3.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
||
|
||
INSTALL_DIR="$HOME/.dotfiles"
|
||
|
||
# Ask for the administrator password upfront
|
||
sudo -v
|
||
|
||
# Keep-alive: update existing `sudo` time stamp until script is done
|
||
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
|
||
|
||
##### GIT & DOTFILES ######
|
||
# If the install folder doesn't exist, you bash < <(curl ...)'d this script!
|
||
if [ ! -d "$INSTALL_DIR" ]; then
|
||
# Check for git and install it if necessary
|
||
if ! command -v "git" 2>&1 >/dev/null; then
|
||
echo "GIT isn't installed! Please install it."
|
||
exit 1
|
||
fi
|
||
|
||
# Get the dotfiles
|
||
echo "$(tput setaf 2)==> Cloning dotfiles repo$(tput sgr0)"
|
||
git clone https://github.com/hlissner/dotfiles.git "$INSTALL_DIR"
|
||
|
||
ln -sf "$INSTALL_DIR/gitconfig" ~/.gitconfig
|
||
ln -sf "$INSTALL_DIR/gitignore" ~/.gitignore
|
||
else
|
||
echo "$(tput setaf 1)==> Dotfiles are already installed$(tput sgr0)"
|
||
fi
|
||
|
||
###### DEPENDENCIES #######
|
||
source "$INSTALL_DIR/zsh/functions"
|
||
|
||
if is_mac; then
|
||
# Set up the OSX options
|
||
$INSTALL_DIR/install/osx
|
||
|
||
# Detect homebrew; install it if necessary
|
||
if ! command_exists brew; then
|
||
echo-g "==> Installing Homebrew"
|
||
|
||
# http://mxcl.github.com/homebrew/
|
||
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)
|
||
|
||
# Reregister the PATH so bash sees brew and its minions
|
||
PATH=/usr/local/bin:/usr/local/sbin:$PATH
|
||
|
||
# Install GNU core utilities (those that come with OS X are outdated)
|
||
brew install coreutils
|
||
# echo "Don’t forget to add $(brew --prefix coreutils)/libexec/gnubin to \$PATH."
|
||
# Install GNU `find`, `locate`, `updatedb`, and `xargs`, g-prefixed
|
||
brew install findutils
|
||
# Install Bash 4
|
||
brew install bash
|
||
# Install wget with IRI support
|
||
brew install wget --enable-iri
|
||
|
||
# Install more recent versions of some OS X tools
|
||
brew tap homebrew/dupes
|
||
brew install homebrew/dupes/grep
|
||
brew tap josegonzalez/homebrew-php
|
||
|
||
# Install everything else
|
||
brew install ack rename tree node nginx memcached ctags
|
||
brew install php54 --with-fpm --with-imap --with-mysql --with-pgsql --without-apache
|
||
brew install php54-imagick php54-mcrypt php54-xdebug readline
|
||
|
||
echo-g "==> Homebrew: Updating"
|
||
brew update && brew upgrade
|
||
|
||
echo-g "==> Homebrew: Cleaning up"
|
||
brew cleanup
|
||
else
|
||
echo-r "==> Homebrew is already installed!"
|
||
fi
|
||
elif is_linux; then
|
||
echo-g "==> Installing dependencies"
|
||
pkg-install curl python ruby wget zsh
|
||
|
||
echo-g "==> Aptitude: Updating"
|
||
pkg-update
|
||
fi
|
||
|
||
# https://github.com/jamiew/git-friendly
|
||
if ! command_exists "branch"; then
|
||
echo-g "==> Installing git-friendly"
|
||
bash < <(curl https://raw.github.com/jamiew/git-friendly/master/install.sh)
|
||
fi
|
||
|
||
# Install & setup ZSH shell
|
||
$INSTALL_DIR/install/zsh
|
||
|
||
# Install RVM & setup 1.8.7, 1.9.2 rubies
|
||
$INSTALL_DIR/install/rvm
|
||
|
||
# Install & setup TMUX
|
||
$INSTALL_DIR/install/tmux
|
||
|
||
# Install & setup VIM
|
||
$INSTALL_DIR/install/vim
|
||
|
||
# Wrap things up
|
||
echo
|
||
echo-g "Done!"
|
||
echo "And if you want to install vim, run:"
|
||
echo " sh <(curl https://raw.github.com/hlissner/mlvim/master/install.sh -L)"
|