class R10KHelper
Attributes
basedir[RW]
modules[RW]
puppetfile[RW]
Public Class Methods
new(puppetfile)
click to toggle source
# File lib/simp/rake/build/deps.rb, line 67 def initialize(puppetfile) @modules = [] @basedir = File.dirname(File.expand_path(puppetfile)) Dir.chdir(@basedir) do R10K::Git::Cache.settings[:cache_root] = File.join(@basedir,'.r10k_cache') unless File.directory?(R10K::Git::Cache.settings[:cache_root]) FileUtils.mkdir_p(R10K::Git::Cache.settings[:cache_root]) end r10k = R10K::Puppetfile.new(Dir.pwd, nil, puppetfile) r10k.load! @modules = r10k.modules.collect do |mod| mod_status = mod.repo.repo.dirty? mod = { :name => mod.name, :path => mod.path.to_s, :remote => mod.repo.instance_variable_get('@remote'), :desired_ref => mod.desired_ref, :git_source => mod.repo.repo.origin, :git_ref => mod.repo.head, :module_dir => mod.basedir, :status => mod_status ? mod_status : :known, :r10k_module => mod, :r10k_cache => mod.repo.repo.cache_repo } end end module_dirs = @modules.collect do |mod| mod = mod[:module_dir] end module_dirs.uniq! module_dirs.each do |module_dir| known_modules = @modules.select do |mod| mod[:module_dir] == module_dir end known_modules.map! do |mod| mod = mod[:name] end current_modules = Dir.glob(File.join(module_dir,'*')).map do |mod| mod = File.basename(mod) end (current_modules - known_modules).each do |mod| # Did we find random git repos in our module spaces? if File.exist?(File.join(module_dir, mod, '.git')) @modules << { :name => mod, :path => File.join(module_dir, mod), :module_dir => module_dir, :status => :unknown, } end end end end
Public Instance Methods
each_module(&block)
click to toggle source
# File lib/simp/rake/build/deps.rb, line 157 def each_module(&block) Dir.chdir(@basedir) do @modules.each do |mod| # This works for Puppet Modules block.call(mod) end end end
unknown_modules()
click to toggle source
# File lib/simp/rake/build/deps.rb, line 167 def unknown_modules @modules.select do |mod| mod[:status] == :unknown end.map do |mod| mod = mod[:name] end end