Sha256: 5a64f56d6d254e9ec4c6954f66f1387ee53aee058de2925eaead116f3988a68c
Contents?: true
Size: 753 Bytes
Versions: 11
Compression:
Stored size: 753 Bytes
Contents
require "ffi-libarchive-binary" module Excavate module Extractors class XarExtractor < Extractor def extract(target) Dir.chdir(target) do extract_with_libarchive rename_payload(target) end end private def extract_with_libarchive flags = ::Archive::EXTRACT_PERM reader = ::Archive::Reader.open_filename(@archive) reader.each_entry do |entry| reader.extract(entry, flags.to_i) end reader.close end def rename_payload(target) Dir.glob(File.join(target, "**", "Payload")).each do |file| next unless File.file?(file) FileUtils.mv(file, "#{file}.cpio.gz") end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems