vagrant and chef install everything
This commit is contained in:
56
ops/cookbooks/vendor/ark/libraries/tar_command_builder.rb
vendored
Normal file
56
ops/cookbooks/vendor/ark/libraries/tar_command_builder.rb
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
module Ark
|
||||
class TarCommandBuilder
|
||||
def unpack
|
||||
"#{tar_binary} #{args} #{resource.release_file}#{strip_args}"
|
||||
end
|
||||
|
||||
def dump
|
||||
"tar -mxf \"#{resource.release_file}\" -C \"#{resource.path}\""
|
||||
end
|
||||
|
||||
def cherry_pick
|
||||
"#{tar_binary} #{args} #{resource.release_file} -C #{resource.path} #{resource.creates}#{strip_args}"
|
||||
end
|
||||
|
||||
def initialize(resource)
|
||||
@resource = resource
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :resource
|
||||
|
||||
def node
|
||||
resource.run_context.node
|
||||
end
|
||||
|
||||
def tar_binary
|
||||
@tar_binary ||= node['ark']['tar'] || case node['platform_family']
|
||||
when 'mac_os_x', 'freebsd'
|
||||
'/usr/bin/tar'
|
||||
when 'smartos'
|
||||
'/bin/gtar'
|
||||
else
|
||||
'/bin/tar'
|
||||
end
|
||||
end
|
||||
|
||||
def args
|
||||
case resource.extension
|
||||
when /^(tar)$/ then 'xf'
|
||||
when /^(tar.gz|tgz)$/ then 'xzf'
|
||||
when /^(tar.bz2|tbz)$/ then 'xjf'
|
||||
when /^(tar.xz|txz)$/ then 'xJf'
|
||||
else raise unsupported_extension
|
||||
end
|
||||
end
|
||||
|
||||
def strip_args
|
||||
resource.strip_components > 0 ? " --strip-components=#{resource.strip_components}" : ''
|
||||
end
|
||||
|
||||
def unsupported_extension
|
||||
"Don't know how to expand #{resource.url} (extension: #{resource.extension})"
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user