package/src/package/weird.cr

21 lines
610 B
Crystal

require "file_utils"
class Package::Weird
def self.extract(file, metadata_destination, data_destination)
FileUtils.mkdir_p "#{metadata_destination}"
r = Process.run "tar", ["xf", file, "-C", metadata_destination],
output: STDOUT, error: STDERR
raise Exception.new "Invalid package: extraction failed" unless r.success?
FileUtils.mkdir_p "#{data_destination}"
r = Process.run "tar", [
"xf", "#{metadata_destination}/data.tar.xz",
"-C", data_destination],
output: STDOUT, error: STDERR
raise Exception.new "Invalid package: data.tar.xz extraction failed" unless r.success?
end
end