Module: PuppetForgeServer::Utils::Archiver

Included in:
Backends::Directory
Defined in:
lib/puppet_forge_server/utils/archiver.rb

Instance Method Summary collapse

Instance Method Details

#read_from_archive(archive, name_regex) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/puppet_forge_server/utils/archiver.rb', line 22

def read_from_archive(archive, name_regex)
  tar = Gem::Package::TarReader.new(Zlib::GzipReader.open(archive))
  tar.rewind
  files = {}
  tar.each do |obj|
    files[obj.full_name] = obj.read if obj.file? && obj.full_name =~ name_regex
  end
  return files unless files.empty?
  raise "Given name #{name_regex} not found in #{archive}"
end