Knife-Zero doesn't include Berkshelf support, so vendoring everything in the repo is convenient again
53 lines
1.7 KiB
Ruby
53 lines
1.7 KiB
Ruby
#
|
|
# Cookbook:: nginx
|
|
# Recipe:: pagespeed_module
|
|
#
|
|
|
|
src_filename = ::File.basename(node['nginx']['pagespeed']['url'])
|
|
src_filepath = "#{Chef::Config['file_cache_path']}/#{src_filename}"
|
|
extract_path = "#{Chef::Config['file_cache_path']}/nginx_pagespeed-#{node['nginx']['pagespeed']['version']}"
|
|
|
|
remote_file src_filepath do
|
|
source node['nginx']['pagespeed']['url']
|
|
not_if { ::File.exist?(src_filepath) }
|
|
end
|
|
|
|
psol_src_filename = "psol-#{::File.basename(node['nginx']['psol']['url'])}"
|
|
psol_src_filepath = "#{Chef::Config['file_cache_path']}/#{psol_src_filename}"
|
|
psol_extract_path = "#{Chef::Config['file_cache_path']}/nginx_pagespeed-#{node['nginx']['pagespeed']['version']}/psol"
|
|
|
|
remote_file psol_src_filepath do
|
|
source node['nginx']['psol']['url']
|
|
not_if { ::File.exist?(psol_src_filepath) }
|
|
end
|
|
|
|
package_array = value_for_platform_family(
|
|
%w(rhel amazon) => node['nginx']['pagespeed']['packages']['rhel'],
|
|
%w(debian) => node['nginx']['pagespeed']['packages']['debian']
|
|
)
|
|
|
|
package package_array unless package_array.empty?
|
|
|
|
bash 'extract_pagespeed' do
|
|
cwd ::File.dirname(src_filepath)
|
|
code <<-EOH
|
|
mkdir -p #{extract_path}
|
|
tar xzf #{src_filename} -C #{extract_path}
|
|
mv #{extract_path}/*/* #{extract_path}/
|
|
EOH
|
|
not_if { ::File.exist?(extract_path) }
|
|
end
|
|
|
|
bash 'extract_psol' do
|
|
cwd ::File.dirname(psol_src_filepath)
|
|
code <<-EOH
|
|
mkdir -p #{psol_extract_path}
|
|
tar xzf #{psol_src_filename} -C #{psol_extract_path}
|
|
mv #{psol_extract_path}/*/* #{psol_extract_path}/
|
|
EOH
|
|
not_if { ::File.exist?(psol_extract_path) }
|
|
end
|
|
|
|
node.run_state['nginx_configure_flags'] =
|
|
node.run_state['nginx_configure_flags'] | ["--add-module=#{extract_path}"]
|