Sha256: e2d295bfbe633440fef038350b0ebb6ba582fbeb4517165108983def18360225

Contents?: true

Size: 740 Bytes

Versions: 65

Compression:

Stored size: 740 Bytes

Contents

require 'pe_build/unpack'
require 'archive/tar/minitar'

class PEBuild::Unpack::Tar

  # @param src [String]
  # @param dst [String]
  def initialize(src, dst)
    @src, @dst = src, dst
  end

  def unpack
    ::Archive::Tar::Minitar.unpack(file_stream, @dst)
  end

  # @return [String] The file/dir that will be created as a result of unpack
  def creates
    File.join(@dst, dirname)
  end

  # @return [String] The base directory contained in the tar archive
  def dirname
    input = ::Archive::Tar::Minitar::Input.new(file_stream)

    base = nil
    input.each do |entry|
      path = entry.name
      base = path.split(File::SEPARATOR).first
    end

    base
  end

  private

  def file_stream
    File.open(@src, 'rb')
  end
end

Version data entries

65 entries across 65 versions & 1 rubygems

Version Path
vagrant-pe_build-0.19.2 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.19.1 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.19.0 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.18.2 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.18.1 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.18.0 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.14 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.13 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.12 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.11 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.10 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.9 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.8 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.7 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.6 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.5 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.4 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.3 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.2 lib/pe_build/unpack/tar.rb
vagrant-pe_build-0.17.1 lib/pe_build/unpack/tar.rb