# # Cookbook Name:: ark # Provider:: Ark # # Author:: Bryan W. Berry # Author:: Sean OMeara "#{new_resource.path}/bin") only_if { new_resource.append_env_path } end end # Add to path for the current chef-client converge. bin_path = ::File.join(new_resource.path, 'bin') ruby_block "adding '#{bin_path}' to chef-client ENV['PATH']" do block do ENV['PATH'] = bin_path + ':' + ENV['PATH'] end only_if { new_resource.append_env_path && ENV['PATH'].scan(bin_path).empty? } end end ############## # action :put ############## action :put do show_deprecations set_put_paths directory new_resource.path do recursive true action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # download remote_file new_resource.release_file do source new_resource.url checksum new_resource.checksum if new_resource.checksum action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # unpack based on file extension _unpack_command = unpack_command execute "unpack #{new_resource.release_file}" do command _unpack_command cwd new_resource.path environment new_resource.environment notifies :run, "execute[set owner on #{new_resource.path}]" action :nothing end # set_owner _owner_command = owner_command execute "set owner on #{new_resource.path}" do command _owner_command action :nothing end end ########################### # action :dump ########################### action :dump do show_deprecations set_dump_paths directory new_resource.path do recursive true action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # download remote_file new_resource.release_file do Chef::Log.debug("DEBUG: new_resource.release_file #{new_resource.release_file}") source new_resource.url checksum new_resource.checksum if new_resource.checksum action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # unpack based on file extension _dump_command = dump_command execute "unpack #{new_resource.release_file}" do command _dump_command cwd new_resource.path environment new_resource.environment notifies :run, "execute[set owner on #{new_resource.path}]" action :nothing end # set_owner _owner_command = owner_command execute "set owner on #{new_resource.path}" do command _owner_command action :nothing end end ########################### # action :unzip ########################### action :unzip do show_deprecations set_dump_paths directory new_resource.path do recursive true action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # download remote_file new_resource.release_file do Chef::Log.debug("DEBUG: new_resource.release_file #{new_resource.release_file}") source new_resource.url checksum new_resource.checksum if new_resource.checksum action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # unpack based on file extension _unzip_command = unzip_command execute "unpack #{new_resource.release_file}" do command _unzip_command cwd new_resource.path environment new_resource.environment notifies :run, "execute[set owner on #{new_resource.path}]" action :nothing end # set_owner _owner_command = owner_command execute "set owner on #{new_resource.path}" do command _owner_command action :nothing end end ##################### # action :cherry_pick ##################### action :cherry_pick do show_deprecations set_dump_paths Chef::Log.debug("DEBUG: new_resource.creates #{new_resource.creates}") directory new_resource.path do recursive true action :create notifies :run, "execute[cherry_pick #{new_resource.creates} from #{new_resource.release_file}]" end # download remote_file new_resource.release_file do source new_resource.url checksum new_resource.checksum if new_resource.checksum action :create notifies :run, "execute[cherry_pick #{new_resource.creates} from #{new_resource.release_file}]" end _unpack_type = unpack_type _cherry_pick_command = cherry_pick_command execute "cherry_pick #{new_resource.creates} from #{new_resource.release_file}" do Chef::Log.debug("DEBUG: unpack_type: #{_unpack_type}") command _cherry_pick_command creates "#{new_resource.path}/#{new_resource.creates}" notifies :run, "execute[set owner on #{new_resource.path}]" action :nothing end # set_owner _owner_command = owner_command execute "set owner on #{new_resource.path}" do command _owner_command action :nothing end end ########################### # action :install_with_make ########################### action :install_with_make do show_deprecations set_paths directory new_resource.path do recursive true action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end remote_file new_resource.release_file do Chef::Log.debug('DEBUG: new_resource.release_file') source new_resource.url checksum new_resource.checksum if new_resource.checksum action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # unpack based on file extension _unpack_command = unpack_command execute "unpack #{new_resource.release_file}" do command _unpack_command cwd new_resource.path environment new_resource.environment notifies :run, "execute[set owner on #{new_resource.path}]" notifies :run, "execute[autogen #{new_resource.path}]" notifies :run, "execute[configure #{new_resource.path}]" notifies :run, "execute[make #{new_resource.path}]" notifies :run, "execute[make install #{new_resource.path}]" action :nothing end # set_owner _owner_command = owner_command execute "set owner on #{new_resource.path}" do command _owner_command action :nothing end execute "autogen #{new_resource.path}" do command './autogen.sh' only_if { ::File.exist? "#{new_resource.path}/autogen.sh" } cwd new_resource.path environment new_resource.environment action :nothing ignore_failure true end execute "configure #{new_resource.path}" do command "./configure #{new_resource.autoconf_opts.join(' ')}" only_if { ::File.exist? "#{new_resource.path}/configure" } cwd new_resource.path environment new_resource.environment action :nothing end execute "make #{new_resource.path}" do command "make #{new_resource.make_opts.join(' ')}" cwd new_resource.path environment new_resource.environment action :nothing end execute "make install #{new_resource.path}" do command "make install #{new_resource.make_opts.join(' ')}" cwd new_resource.path environment new_resource.environment action :nothing end # unless new_resource.creates and ::File.exists? new_resource.creates # end end action :configure do show_deprecations set_paths directory new_resource.path do recursive true action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end remote_file new_resource.release_file do Chef::Log.debug('DEBUG: new_resource.release_file') source new_resource.url checksum new_resource.checksum if new_resource.checksum action :create notifies :run, "execute[unpack #{new_resource.release_file}]" end # unpack based on file extension _unpack_command = unpack_command execute "unpack #{new_resource.release_file}" do command _unpack_command cwd new_resource.path environment new_resource.environment notifies :run, "execute[set owner on #{new_resource.path}]" notifies :run, "execute[autogen #{new_resource.path}]" notifies :run, "execute[configure #{new_resource.path}]" action :nothing end # set_owner _owner_command = owner_command execute "set owner on #{new_resource.path}" do command _owner_command action :nothing end execute "autogen #{new_resource.path}" do command './autogen.sh' only_if { ::File.exist? "#{new_resource.path}/autogen.sh" } cwd new_resource.path environment new_resource.environment action :nothing ignore_failure true end execute "configure #{new_resource.path}" do command "./configure #{new_resource.autoconf_opts.join(' ')}" only_if { ::File.exist? "#{new_resource.path}/configure" } cwd new_resource.path environment new_resource.environment action :nothing end end