vagrant-dotvm 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vagrant-dotvm/configinjecter.rb +4 -0
- data/lib/vagrant-dotvm/configparser.rb +40 -8
- data/lib/vagrant-dotvm/dotvm.rb +7 -1
- data/lib/vagrant-dotvm/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac3f756b853e209dc3e93547211f615dd14b2884
|
4
|
+
data.tar.gz: 1efbc6cc56001b784b6d4386f83b8d6b3fd340d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05582f9bf691aabc45ce5323eca5404dd227be9e593a1815c807e3d3c4440f3fb9c6c8013bdd03b58a9cef3e955950bec4df418007e3b3ebf25d4cf46391ddfe
|
7
|
+
data.tar.gz: 4879b7177a4760abdd1d8a5177b16c15545a031adf357040ecdb23f3f36d05e80c9daacd3cf8fefa476b240b64390ada8040d9e427c974457d2239e2945482cb
|
@@ -2,7 +2,26 @@ module VagrantPlugins
|
|
2
2
|
module Dotvm
|
3
3
|
class ConfigParser
|
4
4
|
|
5
|
-
def
|
5
|
+
def initialize(vars = {})
|
6
|
+
@vars = vars
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
def replace_vars(value)
|
11
|
+
if value
|
12
|
+
value = value.dup()
|
13
|
+
|
14
|
+
@vars.each do |key, val|
|
15
|
+
pattern = '%' + key + '%'
|
16
|
+
value.gsub! pattern, val
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
return value
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def parse_machine(machine)
|
6
25
|
return {
|
7
26
|
:nick => machine['nick'],
|
8
27
|
:name => machine['name'],
|
@@ -12,11 +31,12 @@ module VagrantPlugins
|
|
12
31
|
:cpucap => machine['cpucap'],
|
13
32
|
:networks => [],
|
14
33
|
:provision => [],
|
34
|
+
:folders => [],
|
15
35
|
}
|
16
36
|
end
|
17
37
|
|
18
38
|
|
19
|
-
def
|
39
|
+
def parse_net(net)
|
20
40
|
return {
|
21
41
|
:net => net['net'],
|
22
42
|
:type => net['type'],
|
@@ -26,20 +46,28 @@ module VagrantPlugins
|
|
26
46
|
end
|
27
47
|
|
28
48
|
|
29
|
-
def
|
49
|
+
def parse_provision(prv)
|
30
50
|
return {
|
31
51
|
:type => prv['type'],
|
32
|
-
:source => prv['source'],
|
52
|
+
:source => self.replace_vars(prv['source']),
|
33
53
|
:destination => prv['destination'],
|
34
|
-
:path => prv['path'],
|
35
|
-
:module_path => prv['module_path'],
|
36
|
-
:manifests_path => prv['manifests_path'],
|
54
|
+
:path => self.replace_vars(prv['path']),
|
55
|
+
:module_path => self.replace_vars(prv['module_path']),
|
56
|
+
:manifests_path => self.replace_vars(prv['manifests_path']),
|
37
57
|
:manifest_file => prv['manifest_file'],
|
38
58
|
}
|
39
59
|
end
|
40
60
|
|
61
|
+
|
62
|
+
def parse_folder(folder)
|
63
|
+
return {
|
64
|
+
:host => self.replace_vars(folder['host']),
|
65
|
+
:guest => folder['guest'],
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
41
69
|
|
42
|
-
def
|
70
|
+
def parse(yaml)
|
43
71
|
config = {
|
44
72
|
:machines => []
|
45
73
|
}
|
@@ -55,6 +83,10 @@ module VagrantPlugins
|
|
55
83
|
item[:provision] << self.parse_provision(prv)
|
56
84
|
end
|
57
85
|
|
86
|
+
machine['shared_folders'] and machine['shared_folders'].each do |folder|
|
87
|
+
item[:folders] << self.parse_folder(folder)
|
88
|
+
end
|
89
|
+
|
58
90
|
config[:machines] << item
|
59
91
|
end
|
60
92
|
|
data/lib/vagrant-dotvm/dotvm.rb
CHANGED
@@ -16,7 +16,13 @@ module VagrantPlugins
|
|
16
16
|
|
17
17
|
Dir[@path + "/projects/*/*.yaml"].each do |fname|
|
18
18
|
yaml = YAML::load(File.read(fname))
|
19
|
-
|
19
|
+
|
20
|
+
vars = {
|
21
|
+
'project.path' => File.dirname(fname),
|
22
|
+
}
|
23
|
+
|
24
|
+
parser = ConfigParser.new vars
|
25
|
+
configs << parser.parse(yaml)
|
20
26
|
end
|
21
27
|
|
22
28
|
return configs
|