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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d053d347689bd9c664cfadddc32887db8998b50
4
- data.tar.gz: a0a43d35f531de72197855e00bf9234b75467866
3
+ metadata.gz: ac3f756b853e209dc3e93547211f615dd14b2884
4
+ data.tar.gz: 1efbc6cc56001b784b6d4386f83b8d6b3fd340d7
5
5
  SHA512:
6
- metadata.gz: bfd4a6f6dc9c0d328901ae395291999f6a6c97db7862443ca33b0c10e6a75ca12dc76b0d4e1512bde619a3b9c03f5dcea031d273e64ffcfe0e67b09b506e4e3c
7
- data.tar.gz: f2e8bf0a265a3fa3c52b383f4fa272c9585c669766b520d6a4d59ba11fa7b8591c8e2be592e037fb2e88547a8d83dd34f47869d9f76589d70d7eaa2a800c5329
6
+ metadata.gz: 05582f9bf691aabc45ce5323eca5404dd227be9e593a1815c807e3d3c4440f3fb9c6c8013bdd03b58a9cef3e955950bec4df418007e3b3ebf25d4cf46391ddfe
7
+ data.tar.gz: 4879b7177a4760abdd1d8a5177b16c15545a031adf357040ecdb23f3f36d05e80c9daacd3cf8fefa476b240b64390ada8040d9e427c974457d2239e2945482cb
@@ -35,6 +35,10 @@ module VagrantPlugins
35
35
  end
36
36
  end
37
37
  end
38
+
39
+ machine_cfg[:folders].each do |folder|
40
+ machine.vm.synced_folder folder[:host], folder[:guest]
41
+ end
38
42
  end
39
43
  end
40
44
  end
@@ -2,7 +2,26 @@ module VagrantPlugins
2
2
  module Dotvm
3
3
  class ConfigParser
4
4
 
5
- def self.parse_machine(machine)
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 self.parse_net(net)
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 self.parse_provision(prv)
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 self.parse(yaml)
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
 
@@ -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
- configs << ConfigParser.parse(yaml)
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
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Dotvm
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-dotvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Magosa