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