Sha256: 8f630dad5dad52dc966c1d0e56818a0b241c2fc4a1cf49e3c3d5f7209a20ad7c

Contents?: true

Size: 704 Bytes

Versions: 1

Compression:

Stored size: 704 Bytes

Contents

module PEBuild
  module Unpack

    class UnknownInstallerType < Vagrant::Errors::VagrantError
      error_key(:unknown_installer_type, "pebuild.unpack")
    end

    require 'pe_build/unpack/tar'
    require 'pe_build/unpack/tar_gz'
    require 'pe_build/unpack/copy'

    IMPLEMENTATIONS = {
      '.tar'    => PEBuild::Unpack::Tar,
      '.tar.gz' => PEBuild::Unpack::TarGZ,
      '.msi'    => PEBuild::Unpack::Copy,
    }

    # @param src [String]
    # @param dst [String]
    def self.generate(src, dst)
      klass = IMPLEMENTATIONS.find do |key,v|
        src.end_with?(key)
      end.last

      raise UnknownInstallerType, :src => src unless klass
      klass.new(src, dst)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vagrant-pe_build-0.6.0 lib/pe_build/unpack.rb