class Mixlib::Archive::LibArchive
def create(files, gzip: false)
=== Parameters
Creates an archive with the given set of +files+
def create(files, gzip: false) compression = gzip ? ::Archive::COMPRESSION_GZIP : ::Archive::COMPRESSION_NONE # "PAX restricted" will use PAX extensions when it has to, but will otherwise # use ustar for maximum compatibility format = ::Archive::FORMAT_TAR_PAX_RESTRICTED ::Archive.write_open_filename(archive, compression, format) do |tar| files.each do |fn| tar.new_entry do |entry| content = nil entry.pathname = fn stat = File.lstat(fn) if File.file?(fn) content = File.read(fn) entry.size = content.size end entry.mode = stat.mode entry.filetype = resolve_type(stat.ftype) entry.atime = stat.atime entry.mtime = stat.mtime entry.symlink = File.readlink(fn) if File.symlink?(fn) tar.write_header(entry) tar.write_data(content) unless content.nil? end end end end