Class: Librarian::Puppet::Source::Git
- Inherits:
-
Source::Git
- Object
- Source::Git
- Librarian::Puppet::Source::Git
- Includes:
- Local
- Defined in:
- lib/librarian/puppet/source/git.rb
Instance Method Summary collapse
- #cache! ⇒ Object
- #cache_in_vendor(tmp_path) ⇒ Object
- #fetch_dependencies(name, version, extra) ⇒ Object
- #fetch_version(name, extra) ⇒ Object
- #forge_source ⇒ Object
- #vendor_cached? ⇒ Boolean
- #vendor_checkout! ⇒ Object
- #vendor_tgz ⇒ Object
Methods included from Local
Methods inherited from Source::Git
Instance Method Details
#cache! ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/librarian/puppet/source/git.rb', line 27 def cache! return vendor_checkout! if vendor_cached? if environment.local? raise Error, "Could not find a local copy of #{uri} at #{sha}." end super cache_in_vendor(repository.path) if environment.vendor? end |
#cache_in_vendor(tmp_path) ⇒ Object
58 59 60 61 62 |
# File 'lib/librarian/puppet/source/git.rb', line 58 def cache_in_vendor(tmp_path) Dir.chdir(tmp_path.to_s) do %x{git archive #{sha} | gzip > #{vendor_tgz}} end end |
#fetch_dependencies(name, version, extra) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/librarian/puppet/source/git.rb', line 70 def fetch_dependencies(name, version, extra) dependencies = Set.new if modulefile? = ::Puppet::ModuleTool::Metadata.new ::Puppet::ModuleTool::ModulefileReader.evaluate(, modulefile) .dependencies.each do |dependency| dependency_name = dependency.instance_variable_get(:@full_module_name) version = dependency.instance_variable_get(:@version_requirement) gem_requirement = Requirement.new(version).gem_requirement dependencies << Dependency.new(dependency_name, gem_requirement, forge_source) end end if specfile? spec = environment.dsl(Pathname(specfile)) dependencies.merge spec.dependencies end dependencies end |
#fetch_version(name, extra) ⇒ Object
64 65 66 67 68 |
# File 'lib/librarian/puppet/source/git.rb', line 64 def fetch_version(name, extra) cache! found_path = found_path(name) module_version end |
#forge_source ⇒ Object
94 95 96 |
# File 'lib/librarian/puppet/source/git.rb', line 94 def forge_source Forge.(environment, :remote=>"http://forge.puppetlabs.com") end |
#vendor_cached? ⇒ Boolean
43 44 45 |
# File 'lib/librarian/puppet/source/git.rb', line 43 def vendor_cached? vendor_tgz.exist? end |
#vendor_checkout! ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/librarian/puppet/source/git.rb', line 47 def vendor_checkout! repository.path.rmtree if repository.path.exist? repository.path.mkpath Dir.chdir(repository.path.to_s) do %x{tar xzf #{vendor_tgz}} end repository_cached! end |
#vendor_tgz ⇒ Object
39 40 41 |
# File 'lib/librarian/puppet/source/git.rb', line 39 def vendor_tgz environment.vendor_source + "#{sha}.tar.gz" end |