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  }