def run
check_clobber!
build_dir = Puppet::Module::Tool::Cache.base_path + "tmp-unpacker-#{Digest::SHA1.hexdigest(@filename.basename)}"
build_dir.mkpath
begin
FileUtils.cp @filename, build_dir
Dir.chdir(build_dir) do
unless system "tar xzf #{@filename.basename}"
abort "Could not extract contents of module archive."
end
end
extracted = build_dir.children.detect { |c| c.directory? }
if force?
FileUtils.rm_rf @full_name rescue nil
end
FileUtils.cp_r extracted, @full_name
tag_revision
ensure
build_dir.rmtree
end
say "Installed #{@release_name.inspect} into directory: #{@full_name}"
end