Dev set up
This commit is contained in:
536
ops/cookbooks/vendor/ark/resources/default.rb
vendored
Normal file
536
ops/cookbooks/vendor/ark/resources/default.rb
vendored
Normal file
@ -0,0 +1,536 @@
|
||||
#
|
||||
# Cookbook:: ark
|
||||
# Resource:: Ark
|
||||
#
|
||||
# Author:: Bryan W. Berry <bryan.berry@gmail.com>
|
||||
# Copyright:: 2012-2017, Bryan W. Berry
|
||||
# Copyright:: 2016-2017, Chef Software Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
property :owner, String
|
||||
property :group, [String, Integer], default: 0
|
||||
property :url, String, required: true
|
||||
property :path, String
|
||||
property :full_path, String
|
||||
property :append_env_path, [true, false], default: false
|
||||
property :checksum, regex: /^[a-zA-Z0-9]{64}$/, default: nil
|
||||
property :has_binaries, Array, default: []
|
||||
property :creates, String
|
||||
property :release_file, String, default: ''
|
||||
property :strip_leading_dir, [true, false, NilClass]
|
||||
property :strip_components, Integer, default: 1
|
||||
property :mode, [Integer, String], default: 0755
|
||||
property :prefix_root, String
|
||||
property :prefix_home, String
|
||||
property :prefix_bin, String
|
||||
property :version, String
|
||||
property :home_dir, String
|
||||
property :win_install_dir, String
|
||||
property :environment, Hash, default: {}
|
||||
property :autoconf_opts, Array, default: []
|
||||
property :make_opts, Array, default: []
|
||||
property :home_dir, String
|
||||
property :autoconf_opts, Array, default: []
|
||||
property :extension, String
|
||||
property :backup, [FalseClass, Integer], default: 5
|
||||
|
||||
#################
|
||||
# action :install
|
||||
#################
|
||||
action :install 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}]"
|
||||
backup new_resource.backup
|
||||
end
|
||||
|
||||
# unpack based on file extension
|
||||
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
|
||||
execute "set owner on #{new_resource.path}" do
|
||||
command owner_command
|
||||
action :nothing
|
||||
end
|
||||
|
||||
if node['platform_family'] == 'windows'
|
||||
# usually on windows there is no central directory with executables where the applications are linked
|
||||
# so ignore has_binaries for now
|
||||
|
||||
# Add to PATH permanently on Windows if append_env_path
|
||||
windows_path "#{new_resource.path}/bin" do
|
||||
action :add
|
||||
only_if { new_resource.append_env_path }
|
||||
end
|
||||
else
|
||||
# symlink binaries
|
||||
new_resource.has_binaries.each do |bin|
|
||||
link ::File.join(new_resource.prefix_bin, ::File.basename(bin)) do
|
||||
to ::File.join(new_resource.path, bin)
|
||||
end
|
||||
end
|
||||
|
||||
# action_link_paths
|
||||
link new_resource.home_dir do
|
||||
to new_resource.path
|
||||
end
|
||||
|
||||
# Add to path for interactive bash sessions
|
||||
template "/etc/profile.d/#{new_resource.name}.sh" do
|
||||
cookbook 'ark'
|
||||
source 'add_to_path.sh.erb'
|
||||
owner 'root'
|
||||
group node['root_group']
|
||||
mode '0755'
|
||||
cookbook 'ark'
|
||||
variables(directory: "#{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 do
|
||||
new_resource.append_env_path && ENV['PATH'].scan(bin_path).empty?
|
||||
end
|
||||
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}]"
|
||||
backup new_resource.backup
|
||||
end
|
||||
|
||||
# unpack based on file extension
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
execute "cherry_pick #{new_resource.creates} from #{new_resource.release_file}" do
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
end
|
||||
|
||||
action :setup_py_build 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
|
||||
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[python setup.py build #{new_resource.path}]"
|
||||
action :nothing
|
||||
end
|
||||
|
||||
# set_owner
|
||||
execute "set owner on #{new_resource.path}" do
|
||||
command owner_command
|
||||
action :nothing
|
||||
end
|
||||
|
||||
execute "python setup.py build #{new_resource.path}" do
|
||||
command "python setup.py build #{new_resource.make_opts.join(' ')}"
|
||||
cwd new_resource.path
|
||||
environment new_resource.environment
|
||||
action :nothing
|
||||
end
|
||||
end
|
||||
|
||||
action :setup_py_install 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
|
||||
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[python setup.py install #{new_resource.path}]"
|
||||
action :nothing
|
||||
end
|
||||
|
||||
# set_owner
|
||||
execute "set owner on #{new_resource.path}" do
|
||||
command owner_command
|
||||
action :nothing
|
||||
end
|
||||
|
||||
execute "python setup.py install #{new_resource.path}" do
|
||||
command "python setup.py install #{new_resource.make_opts.join(' ')}"
|
||||
cwd new_resource.path
|
||||
environment new_resource.environment
|
||||
action :nothing
|
||||
end
|
||||
end
|
||||
|
||||
action :setup_py 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
|
||||
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[python setup.py #{new_resource.path}]"
|
||||
action :nothing
|
||||
end
|
||||
|
||||
# set_owner
|
||||
execute "set owner on #{new_resource.path}" do
|
||||
command owner_command
|
||||
action :nothing
|
||||
end
|
||||
|
||||
execute "python setup.py #{new_resource.path}" do
|
||||
command "python setup.py #{new_resource.make_opts.join(' ')}"
|
||||
cwd new_resource.path
|
||||
environment new_resource.environment
|
||||
action :nothing
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
action_class do
|
||||
include ::Ark::ProviderHelpers
|
||||
end
|
Reference in New Issue
Block a user