github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/builtin/scriptpack/ruby/data/gem.sh (about) 1 # ruby_gemfile_contains checks if a Gemfile has a certain gem in it 2 ruby_gemfile_contains() { 3 local name=$1 4 5 if [ -f Gemfile.lock ]; then 6 grep -e " $name (" Gemfile.lock > /dev/null 7 return $? 8 fi 9 10 if [ -f Gemfile ]; then 11 grep -e "gem .$name." Gemfile > /dev/null 12 return $? 13 fi 14 15 return 1 16 } 17 18 # ruby_gemfile_apt installs packages for Gems that are detected. 19 ruby_gemfile_apt() { 20 _ruby_gemfile_queue=() 21 _ruby_gemfile_check curb "libcurl3 libcurl3-gnutls libcurl4-openssl-dev" 22 _ruby_gemfile_check capybara-webkit "libqt4-dev" 23 _ruby_gemfile_check mysql2 "libmysqlclient-dev" 24 _ruby_gemfile_check nokogiri "zlib1g-dev" 25 _ruby_gemfile_check pg "libpq-dev" 26 _ruby_gemfile_check rmagick "libmagickwand-dev" 27 _ruby_gemfile_check sqlite3 "libsqlite3-dev" 28 _ruby_gemfile_check libxml-ruby "libxml2-dev" 29 _ruby_gemfile_check paperclip "imagemagick" 30 _ruby_gemfile_check poltergeist "phantomjs" 31 32 if [ -n "${_ruby_gemfile_queue-}" ]; then 33 otto_output "Installing native gem system dependencies..." 34 apt_update_once 35 apt_install "${_ruby_gemfile_queue[@]}" 36 fi 37 } 38 39 # Internal functions for accumulating the queue of things to install 40 # for a Gemfile. 41 _ruby_gemfile_queue=() 42 _ruby_gemfile_check() { 43 local gem=$1 44 local deps=$2 45 46 if ruby_gemfile_contains $gem; then 47 otto_output "Detected the gem: ${gem}" 48 _ruby_gemfile_queue+=($deps) 49 fi 50 }