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