Class: Packer::Binary::Compressor

Inherits:
Object
  • Object
show all
Extended by:
Helpers
Defined in:
lib/packer/binary/compressor.rb

Overview

This class is used to zip and unzip files and directories

Class Method Summary collapse

Methods included from Helpers

debug, err, msg, stderr, stdout, system_command

Class Method Details

.extract(input_file, output_dir) ⇒ Object

Unzip the input zipfile



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/packer/binary/compressor.rb', line 22

def extract(input_file, output_dir)
  Zip::File.open(input_file) do |zip_file|
    # Handle entries one by one
    zip_file.each do |entry|
      # Extract to file/directory/symlink
      dest_file = "#{output_dir}/#{entry.name}"
      debug("Extracting to #{dest_file}")
      entry.extract(dest_file)
    end
  end
end

.write(input_dir, output_file) ⇒ Object

Zip the input directory.



11
12
13
14
15
16
17
18
19
# File 'lib/packer/binary/compressor.rb', line 11

def write(input_dir, output_file)
  entries = Dir.entries(input_dir)
  entries.delete('.')
  entries.delete('..')
  io = Zip::File.open(output_file, Zip::File::CREATE)

  write_entries(entries, '', io, input_dir, output_file)
  io.close
end