Module: Puppet::Moddeps

Defined in:
lib/puppet/moddeps.rb,
lib/puppet/moddeps/version.rb

Constant Summary collapse

VERSION =
"0.3.2"
@@default_module_path =
'/etc/puppet/modules'

Class Method Summary collapse

Class Method Details

.checkIfInstalled(file) ⇒ Object



36
37
38
# File 'lib/puppet/moddeps.rb', line 36

def Moddeps.checkIfInstalled(file)
  File.directory?("#{@@default_module_path}/#{file}")
end

.getDeps(data) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/puppet/moddeps.rb', line 46

def Moddeps.getDeps(data)
  dependencies = []
  data['dependencies'].each do |dep|
    depname = dep["name"].sub '/', '-'
    dependencies.push( depname )
  end

  return dependencies
end

.helpObject



31
32
33
34
# File 'lib/puppet/moddeps.rb', line 31

def Moddeps.help
  puts 'Usage: puppet-moddeps module'
  puts '       Call puppet-moddeps with the name of one installed module'
end

.installDeps(*puppet_module) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/puppet/moddeps.rb', line 11

def Moddeps.installDeps(*puppet_module)

  if ( puppet_module.size >=1 and puppet_module[0].is_a?(Array) )
    args = puppet_module[0]
  else
    args = puppet_module
  end

  if ( args.size == 1 )
    if Moddeps.checkIfInstalled(args[0])
      Moddeps.(args[0])
      Moddeps.installModules
    else
      puts "Can't find #{args[0]} in #{@@default_module_path}"
    end
  else
    Moddeps.help
  end
end

.installModulesObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/puppet/moddeps.rb', line 56

def Moddeps.installModules
  if @deps.size > 0
    @deps.each do |dep|
      if Moddeps.checkIfInstalled(dep)
        puts "#{dep} is already installed, skipping."
      else
        cmd = "/usr/bin/puppet module install #{dep}"
        puts "Running \"#{cmd}\"..."
        %x(#{cmd})
      end
    end
  else
    puts 'No dependencies were marked for installation.'
  end
end

.parseMetadata(puppet_module) ⇒ Object



40
41
42
43
44
# File 'lib/puppet/moddeps.rb', line 40

def Moddeps.(puppet_module)
   = File.read("#{@@default_module_path}/#{puppet_module}/metadata.json")
  data     = JSON.parse()
  @deps    = Moddeps.getDeps(data)
end