vagrant-dotvm 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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