class Puppet::ModuleTool::LocalTarball
Attributes
release[RW]
Public Class Methods
new(filename)
click to toggle source
# File lib/puppet/module_tool/local_tarball.rb 11 def initialize(filename) 12 unpack(filename, tmpdir) 13 Puppet.debug "Unpacked local tarball to #{tmpdir}" 14 15 mod = Puppet::Module.new('tarball', tmpdir, nil) 16 @release = ModuleRelease.new(self, mod) 17 end
Public Instance Methods
fetch(name)
click to toggle source
# File lib/puppet/module_tool/local_tarball.rb 19 def fetch(name) 20 if @release.name == name 21 [ @release ] 22 else 23 [ ] 24 end 25 end
install(release, dir)
click to toggle source
# File lib/puppet/module_tool/local_tarball.rb 31 def install(release, dir) 32 staging_dir = release.prepare 33 34 module_dir = dir + release.name[/-(.*)/, 1] 35 module_dir.rmtree if module_dir.exist? 36 37 # Make sure unpacked module has the same ownership as the folder we are moving it into. 38 Puppet::ModuleTool::Applications::Unpacker.harmonize_ownership(dir, staging_dir) 39 40 FileUtils.mv(staging_dir, module_dir) 41 end
prepare(release)
click to toggle source
# File lib/puppet/module_tool/local_tarball.rb 27 def prepare(release) 28 release.mod.path 29 end
Private Instance Methods
tmpdir()
click to toggle source
Obtain a suitable temporary path for unpacking tarballs
@return [String] path to temporary unpacking location
# File lib/puppet/module_tool/local_tarball.rb 78 def tmpdir 79 @dir ||= Dir.mktmpdir('local-tarball', Puppet::Forge::Cache.base_path) 80 end
unpack(file, destination)
click to toggle source
# File lib/puppet/module_tool/local_tarball.rb 82 def unpack(file, destination) 83 begin 84 Puppet::ModuleTool::Applications::Unpacker.unpack(file, destination) 85 rescue Puppet::ExecutionFailure => e 86 raise RuntimeError, _("Could not extract contents of module archive: %{message}") % { message: e.message } 87 end 88 end