main
  1execute "apt-get update -y"
  2execute "apt-get upgrade -y"
  3
  4packages = %w{
  5  bison
  6  build-essential
  7  curl
  8  exuberant-ctags
  9  flex
 10  g++
 11  git-core
 12  gperf
 13  libcurl4-openssl-dev
 14  libffi-dev
 15  libfontconfig1-dev
 16  libfreetype6
 17  libicu-dev
 18  libjpeg-dev
 19  libpcap-dev
 20  libpng-dev
 21  libreadline-dev
 22  libsqlite3-dev
 23  libssl-dev
 24  libx11-dev
 25  libxext-dev
 26  libxml2-dev
 27  libxslt1-dev
 28  libyaml-dev
 29  memcached
 30  perl
 31  python
 32  python-software-properties
 33  rabbitmq-server
 34  software-properties-common
 35  sqlite3
 36  unzip
 37  zlib1g-dev
 38}
 39
 40package packages
 41
 42phantomjs = "phantomjs-1.9.8-linux-x86_64"
 43remote_file "/tmp/#{phantomjs}.tar.bz2" do
 44  source "https://bitbucket.org/ariya/phantomjs/downloads/#{phantomjs}.tar.bz2"
 45  action :create
 46end
 47
 48bash "install_phantomjs" do
 49  cwd "/tmp"
 50  not_if { ::Dir.exist?("/usr/local/share/#{phantomjs}") }
 51  code <<-SCRIPT
 52    tar xvjf #{phantomjs}.tar.bz2
 53    mv #{phantomjs} /usr/local/share
 54  SCRIPT
 55end
 56
 57link "/usr/local/bin/phantomjs" do
 58  to "/usr/local/share/#{phantomjs}/bin/phantomjs"
 59end
 60
 61bash "install postgres" do
 62  user "root"
 63  not_if { ::File.exist?("/etc/apt/sources.list.d/pgdg.list") }
 64  code <<-SCRIPT
 65    echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
 66    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc \
 67      | apt-key add -
 68    apt-get update -y
 69    apt-get install -y postgresql-9.4 libpq-dev \
 70      postgresql-contrib-9.4 postgresql-client-common
 71  SCRIPT
 72end
 73
 74execute "curl -sL https://deb.nodesource.com/setup | bash -"
 75package "nodejs"
 76
 77sql = "SELECT 1 FROM pg_roles WHERE rolname='vagrant'"
 78create_user = "createuser -s -e -w vagrant"
 79execute "psql postgres -tAc \"#{sql}\" | grep -q 1 || #{create_user}" do
 80  user "postgres"
 81end
 82
 83sql = "SELECT 1 FROM pg_roles WHERE rolname='vagrant'"
 84execute "createdb" do
 85  user "vagrant"
 86  not_if { "psql postgres -tAc \"#{sql}\" | grep -q 1" }
 87end
 88
 89git "/usr/local/rbenv" do
 90  repository "https://github.com/sstephenson/rbenv.git"
 91end
 92
 93file "/etc/profile.d/rbenv.sh" do
 94  content <<-CONTENT
 95export RBENV_ROOT="/usr/local/rbenv"
 96export PATH="/usr/local/rbenv/bin:$PATH"
 97eval "$(rbenv init -)"
 98CONTENT
 99end
100
101directory "/usr/local/rbenv/plugins"
102git "/usr/local/rbenv/plugins/ruby-build" do
103  repository "https://github.com/sstephenson/ruby-build.git"
104end
105
106bash "install_ruby" do
107  user "root"
108  not_if { ::File.exist?("/usr/local/rbenv/shims/ruby") }
109  code <<-EOH
110source /etc/profile.d/rbenv.sh
111rbenv install 2.2.3
112rbenv global 2.2.3
113EOH
114end
115
116bash "install_bundler" do
117  user "root"
118  code <<-EOH
119source /etc/profile.d/rbenv.sh
120gem install bundler --no-ri --no-rdoc
121EOH
122end
123
124execute "cp .env.example .env.local" do
125  user "vagrant"
126  cwd "/vagrant"
127  not_if { ::File.exist?("/vagrant/.env.local") }
128end
129
130["rabbitmq-server", "postgresql"].each do |service_name|
131  service service_name do
132    action [:enable, :start]
133  end
134end