Module: Plugins

Defined in:
lib/vagrant_commands/plugins.rb

Defined Under Namespace

Classes: VagrantPlugin

Class Method Summary collapse

Class Method Details

.check_and_install_plugins(required_plugins) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/vagrant_commands/plugins.rb', line 55

def self.check_and_install_plugins(required_plugins)

  plugins = get_vagrant_plugins

  required_plugins.each {|plugin|

    found = nil
    plugins.each { |p|
      if p.plugin_name == plugin.plugin_name
        found = true
      end
    }

    if found == nil
      Commands::vagrant_plugin_install(plugin.plugin_name,plugin.plugin_version)
    end

  }


end

.check_plugin_installed(plugin) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/vagrant_commands/plugins.rb', line 44

def self.check_plugin_installed(plugin)
  plugins = get_vagrant_plugins
  found = nil
  plugins.each { |p|
    if p.plugin_name == plugin.plugin_name
      found = true
    end
  }
  return found
end

.get_vagrant_pluginsObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/vagrant_commands/plugins.rb', line 2

def self.get_vagrant_plugins
  result = Commands::vagrant_plugin_list

  plugins = Array.new
  plugin_name = nil
  plugin_version = nil
  plugin_version_constraint = nil

  lines = result.lines.map(&:chomp)
  lines.each { |line|

    cols = line.split(/,/)

    if cols[2] == "plugin-name"
      if(plugin_name)
          #add previously found plugin
          plugins.push VagrantPlugin.new(plugin_name,plugin_version,plugin_version_constraint)
          plugin_name = nil
          plugin_version = nil
          plugin_version_constraint = nil
      end
      plugin_name = cols[3]
    end
    if cols[2] == "plugin-version"
      plugin_version = cols[3]
    end
    if cols[2] == "plugin-version-constraint"
      plugin_version_constraint = cols[3]
    end
  }

  if(plugin_name)
      #add previously found plugin
      plugins.push VagrantPlugin.new(plugin_name,plugin_version,plugin_version_constraint)
      plugin_name = nil
      plugin_version = nil
      plugin_version_constraint = nil
  end

  plugins
end