require 'puppet/module_tool' require 'puppet/util' module Puppet::ModuleTool::Tar require 'puppet/module_tool/tar/gnu' require 'puppet/module_tool/tar/mini' def self.instance if Puppet::Util.which('tar') && ! Puppet::Util::Platform.windows? Gnu.new elsif Puppet.features.minitar? && Puppet.features.zlib? Mini.new else raise RuntimeError, 'No suitable tar implementation found' end end end