discourse/chef/cookbooks/phantomjs/recipes/default.rb
Elliot Murphy f3bcbd8bc3 Use chef-solo to install phantomjs into Vagrant VM.
This introduces two configuration management runs into the
Vagrant provisioning phase. The first chef-solo run ensures that
a current version of chef is installed using the omnibus updater.
The second chef-solo run installs vim and phantomjs.

Much more is possible, this is a proof of concept.
Cookbooks are stored in the chef directory, and managed by
librarian-chef, which is like a bundler for cookbooks.

Chef is run when VM is first downloaded and booted, but not on
subsequent halt/up cycles. To force chef to run again, use
`vagrant provision`.
2013-02-07 14:09:57 -05:00

52 lines
1.5 KiB
Ruby

#
# Cookbook Name:: phantomjs
# Recipe:: default
#
# Copyright 2012, CustomInk
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Packages
case node['platform_family']
when 'debian'
%w(fontconfig libfreetype6).each do |package|
package package
end
when 'fedora','rhel'
%w(fontconfig freetype).each do |package|
package package
end
end
basename = "phantomjs-#{node['phantomjs']['version']}-linux-#{node['kernel']['machine']}"
# Download the tarball
remote_file "/usr/local/src/#{basename}.tar.bz2" do
action :create_if_missing
backup false
mode '0644'
checksum node['phantomjs']['checksum'] if node['phantomjs']['checksum']
source "https://phantomjs.googlecode.com/files/#{basename}.tar.bz2"
end
# Install phantomjs
execute 'Install phantomjs' do
command "tar -xvjf /usr/local/src/#{basename}.tar.bz2 -C /usr/local/"
not_if "test -d /usr/local/#{basename}"
end
# Set up the symbolic link
link '/usr/local/bin/phantomjs' do
to "/usr/local/#{basename}/bin/phantomjs"
end