#!/bin/bash blue='\033[34m' red='\033[31m' green='\033[32m' yellow='\033[33m' white='\033[37m' bold='\033[1m' reset='\033[0m' println(){ echo -e "$1${reset}" } print(){ echo -ne "$1${reset}" } usage(){ println "${bold}Usage:\n" println "./full_build.sh [ruby_version]\n" println "When running with out a ruby version, the full build is run for ruby versions:" println "1.8.6\n1.8.7\n1.9.1\n1.9.2\njruby\n" println "Else specify a particular ruby version to run the build against\n" } if [ -f "$HOME/.rvm/scripts/rvm" ] then source "$HOME/.rvm/scripts/rvm" elif [ -f "/usr/local/rvm/scripts/rvm" ] then source "/usr/local/rvm/scripts/rvm" else println "${bold}RVM Not found" println "I looked in $HOME/.rvm/scripts/rvm and /usr/local/rvm/scripts/rvm" println "RVM must be installed to run this script. It's great! find out more: here ${bold}http://rvm.beginrescueend.com/" println "Until it is installed simply run the default rake target to test Mirage against your active version of Ruby and installed gems" exit 1 fi while getopts ":h" opt; do case $opt in h) usage exit 0 ;; \?) println "Invalid option: -$OPTARG" usage exit 1 ;; esac done message="" result=true run_build_for_ruby( ){ println "${green}Running build for: $1" ruby_list=`rvm list` if [[ ${ruby_list} == *$1* ]] then rvm --create $1@mirage rvm --force gemset empty [ -f Gemfile.lock ] && rm Gemfile.lock gem install bundler bundle install rake if [ $? == 0 ] then message="${message}${blue}$1: ${green}pass\n" else message="${message}${blue}$1: ${red}fail\n" result=false fi else message="${message}${blue}$1: ${yellow}Not installed\n" result=false fi } if [ $1 ] then run_build_for_ruby $1 else run_build_for_ruby 'ruby-1.8.6' run_build_for_ruby 'ruby-1.8.7' run_build_for_ruby 'ruby-1.9.1' run_build_for_ruby 'ruby-1.9.2' run_build_for_ruby 'jruby' fi println "\n\n${message}" print "${white}Result: " [ ${result} == true ] && println "${green}Pass\n" || println "${red}Fail\n"