Initial setup for Ruby developers. Creating developer laptop.
#!/bin/bash
CLEAR="\033[0m"
ORANGE="\e[38;5;46m"
# Helper function.
successfully() {
$* || (echo -e "\e[38;5;196mFAILED" 1>&2 && exit 1)
}
# Helper colorized function.
fancy_echo() {
echo -e "${ORANGE}$*${CLEAR}\n"
}
# Install aptitude and use it.
update_system() {
if command -v aptitude >/dev/null; then
fancy_echo "Using aptitude ..."
else
fancy_echo "Installing aptitude ..."
successfully sudo apt-get install -y aptitude
fi
successfully sudo aptitude update
successfully sudo aptitude -y dist-upgrade
}
# Helper function for install.
install_pkg() {
successfully sudo aptitude install -y $1
}
if lsb_release -c | grep -qEv 'precise|trusty'
then
fancy_echo "Sorry! we don't currently support that distro."
exit 1;
fi
fancy_echo "Updating system packages ..."
update_system
fancy_echo "Installing zsh ..."
successfully sudo aptitude install -y zsh
fancy_echo "Installing oh-my-zsh ..."
successfully curl -L http://install.ohmyz.sh | sh
fancy_echo "Changing your shell to zsh ..."
successfully chsh -s `which zsh`
fancy_echo "Installing curl for transferring data with URL syntax ..."
install_pkg curl
fancy_echo "Installing vim the best editor..."
install_pkg vim
fancy_echo "Installing git, for source control management ..."
install_pkg git
fancy_echo "Installing rvm for changing Ruby versions ..."
install_pkg libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
successfully curl -L https://get.rvm.io | bash -s stable
successfully source ~/.rvm/scripts/rvm
successfully echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
successfully rvm install 2.1.5
successfully rvm use 2.1.5 --default
successfully rvm get stable
successfully rvm requirements
successfully echo "gem: --no-ri --no-rdoc" > ~/.gemrc
# command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
fancy_echo "Installing Ruby ..."
successfully rvm install ruby
successfully rvm use ruby --default
fancy_echo "Installing RubyGems ..."
successfully rvm rubygems current
fancy_echo "Installing Ruby on Rails ..."
successfully gem install rails
fancy_echo "Installing NodeJS - Javascript runtime ..."
successfully curl -sL https://deb.nodesource.com/setup | sudo bash -
install_pkg build-essential
install_pkg install nodejs
install_pkg npm
fancy_echo "Installing Compass ..."
successfully gem install sass
successfully gem install compass
fancy_echo "Installing coffee-script ..."
successfully npm install -g coffee-script
successfully gem install coffee
fancy_echo "Installing PostgreSQl ..."
install_pkg postgresql postgresql-contrib
fancy_echo "Installing Sqlite3 ..."
install_pkg sqlite3 libsqlite3-dev
fancy_echo "Installing Yaml ..."
install_pkg libyaml-dev
fancy_echo "Installing libraries for common gem dependencies ..."
install_pkg libxslt1-dev libcurl4-openssl-dev libksba8 libksba-dev libqtwebkit-dev
fancy_echo "Installing Postgres, a good open source relational database ..."
install_pkg postgresql postgresql-server-dev-all
fancy_echo "Installing Redis, a good key-value database ..."
install_pkg redis-server
fancy_echo "Installing Heroku Toolbelt ..."
successfully wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
fancy_echo "Installing Apache2, a good open source web-server"
install_pkg apache2
# fancy_echo "Installing passenger, an apache2 module for production ..."
# successfully sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
# install_pkg apt-transport-https ca-certificates
# successfully sudo touch /etc/apt/sources.list.d/passenger.list
# successfully sudo echo 'deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main' > /etc/apt/sources.list.d/passenger.list
# successfully sudo chown root: /etc/apt/sources.list.d/passenger.list
# successfully sudo chmod 644 /etc/apt/sources.list.d/passenger.list
# successfully sudo aptitude update
# install_pkg libapache2-mod-passenger
# successfully sudo a2enmod passenger
# successfully sudo service apache2 restart
# successfully gem install passenger
# successfully passenger-install-apache2-module
fancy_echo "Your shell will now restart to apply changes."
exec `which zsh` -l
exit 0;
###