set(:ruby_role, :app)
namespace :ruby do
task :defaults do set(:ruby_packages, %w[ autoconf bind9-host bison build-essential curl daemontools dnsutils ed git imagemagick iputils-tracepath libcurl4-openssl-dev libevent-dev libglib2.0-dev libjpeg-dev libjpeg62 libpng12-0 libpng12-dev libmagickcore-dev libmagickwand-dev libmcrypt-dev libmysqlclient-dev libpq-dev libsqlite3-dev libssl-dev libssl0.9.8 libxml2-dev libxslt-dev mercurial netcat-openbsd ruby2.1-dev ruby2.1 socat sqlite3 telnet zlib1g-dev jpegoptim libv8-dev unattended-upgrades ]) end task :sources do role = fetch(:ruby_role) key = "#{role}" == "all" ? :"ubuntu_packages" : :"ubuntu_packages_for_#{role}" packages = fetch(key,[]) packages += fetch(:ruby_packages) set(key, packages) key = "#{role}" == "all" ? :"ubuntu_software_sources" : :"ubuntu_software_sources_for_#{role}" sources = fetch(key,[]) sources += %w[ ppa:brightbox/ruby-ng ] set(key, sources) end task :install_gems do on roles(fetch(:ruby_role)) do if test "[ ! -f /etc/gemrc ]" upload_as :root, StringIO.new("install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri"), "/etc/gemrc" sudo :chmod, '0644', "/etc/gemrc" end if test "[ -z $(which bundler) ]" sudo :gem, 'install', 'bundler' end end end
end
after “load:defaults”, “ruby:defaults” before “ubuntu:update_sources”, “ruby:sources” after “ubuntu:install_packages”, “ruby:install_gems”