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