vagrant-templated 0.1.2 → 0.1.3

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: 247f877832f380fcdab41739e48f3ab5efc68cf3
4
- data.tar.gz: '05639944992e7a4f91c738a07d08f7e0ebe3faa4'
3
+ metadata.gz: 77e216d71b5a1c6413ffa0cf9d4bc88b7d7aa0ca
4
+ data.tar.gz: 625c7ee241d9b164738504bd588de57ddb93915b
5
5
  SHA512:
6
- metadata.gz: ce291b4a1a994e1903fc4925c2397a19ac26df60a80a7a3a60b1d3d20ee0630a44dd7fa1162dc8d55b5d886e3b1a54ab19477545c9aeaf930beb615ef24bbdaf
7
- data.tar.gz: 5491a031e7d820e91c21b037c62e5d282521027477ff1200ae577aea7cdd1bd1007b57785420bb1eeeeba756b4e23da5f90bbb9a972a25b0bfa8011f61366fa4
6
+ metadata.gz: 3ec071972e9006ac2fb265f7d6baff96bf0d4b9080e7b54f20393904fb21b040d7aec1b74e334d2c204260568dabc329bfb66b628db411438a64cde6ffd47dcd
7
+ data.tar.gz: e413ed3c16e7a8cbd3edf3510711fea2ea61e39d8dc80bc439487317f70f5704ea15d692d90744e2938321543a03346e7e76c6957aad0da3239ceb924ba91d2d
data/CHANGELOG.md CHANGED
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.1.3] - 2017-08-05
10
+ ### Added
11
+ - Refactor defaults to attributes, it's more self documented now
12
+ - Move chef version to configuration files, fixing rails5 chef problem
13
+ - Templates displayed at help generated with yml information
14
+ - Refactor templates file structure: one yml per template
15
+
9
16
  ## [0.1.2] - 2017-08-04
10
17
  ### Added
11
18
  - Fix locale load
@@ -1,4 +1,6 @@
1
1
  rails5:
2
+ omnibus:
3
+ chef_version: 12.21.1
2
4
  berkself:
3
5
  cookbooks:
4
6
  apt: ~> 6.1.0
@@ -32,27 +34,3 @@ rails5:
32
34
  vagrant-plugins:
33
35
  - vagrant-omnibus
34
36
  - vagrant-berkshelf
35
- vagrant-plugin:
36
- berkself:
37
- cookbooks:
38
- apt: ~> 6.1.0
39
- ruby_rbenv: ~> 1.2.0
40
- chef:
41
- recipes:
42
- - apt
43
- - ruby_build
44
- - ruby_rbenv::user
45
- json:
46
- rbenv:
47
- user_installs:
48
- - user: vagrant
49
- rubies:
50
- - 2.3.4
51
- global: 2.3.4
52
- gems:
53
- 2.3.4:
54
- - name: bundler
55
- require:
56
- vagrant-plugins:
57
- - vagrant-omnibus
58
- - vagrant-berkshelf
@@ -0,0 +1,26 @@
1
+ vagrant-plugin:
2
+ omnibus:
3
+ chef_version: latest
4
+ berkself:
5
+ cookbooks:
6
+ apt: ~> 6.1.0
7
+ ruby_rbenv: ~> 1.2.0
8
+ chef:
9
+ recipes:
10
+ - apt
11
+ - ruby_build
12
+ - ruby_rbenv::user
13
+ json:
14
+ rbenv:
15
+ user_installs:
16
+ - user: vagrant
17
+ rubies:
18
+ - 2.3.4
19
+ global: 2.3.4
20
+ gems:
21
+ 2.3.4:
22
+ - name: bundler
23
+ require:
24
+ vagrant-plugins:
25
+ - vagrant-omnibus
26
+ - vagrant-berkshelf
@@ -2,6 +2,6 @@
2
2
 
3
3
  source 'https://supermarket.chef.io'
4
4
 
5
- <%- defaults[template]['berkself']['cookbooks'].each do |name, version| -%>
5
+ <%- template_attributes['berkself']['cookbooks'].each do |name, version| -%>
6
6
  cookbook '<%= name %>', '<%= version %>'
7
7
  <%- end -%>
@@ -2,8 +2,8 @@
2
2
  # vi: set ft=ruby :
3
3
  # Vagrantfile generated with https://github.com/afaundez/vagrant-templated
4
4
 
5
- <%- if defaults[template]['require'] && defaults[template]['require']['vagrant-plugins'] -%>
6
- <%= defaults[template]['require']['vagrant-plugins'].to_a %>.each do |plugin_name|
5
+ <%- if template_attributes['require'] && template_attributes['require']['vagrant-plugins'] -%>
6
+ <%= template_attributes['require']['vagrant-plugins'].to_a %>.each do |plugin_name|
7
7
  unless Vagrant.has_plugin? plugin_name
8
8
  raise "#{plugin_name} plugin is required. Please run `vagrant plugin install #{plugin_name}`"
9
9
  end
@@ -12,12 +12,12 @@ end
12
12
 
13
13
  Vagrant.configure('2') do |config|
14
14
  config.vm.box = 'bento/ubuntu-16.04'
15
- config.omnibus.chef_version = :latest
15
+ config.omnibus.chef_version = '<%= template_attributes['omnibus']['chef_version'] %>'
16
16
  config.vm.provision :chef_solo do |chef|
17
- <%- defaults[template]['chef']['recipes'].each do |recipe| -%>
17
+ <%- template_attributes['chef']['recipes'].each do |recipe| -%>
18
18
  chef.add_recipe '<%= recipe %>'
19
19
  <%- end -%>
20
- <% lines = JSON.pretty_generate(defaults[template]['chef']['json']).lines %>
20
+ <% lines = JSON.pretty_generate(template_attributes['chef']['json']).lines %>
21
21
  chef.json = <%= lines.shift.strip %>
22
22
  <%- lines.each do |line| -%>
23
23
  <%= line.rstrip %>
@@ -6,30 +6,34 @@ module Vagrant
6
6
  class Init < Vagrant.plugin('2', :command)
7
7
 
8
8
  def execute
9
- defaults = YAML.load_file File.join(File.dirname(File.expand_path(__FILE__)), '../templates/defaults.yml')
10
- options = {}
9
+ root_path = File.expand_path '../../../', File.dirname(File.expand_path(__FILE__))
10
+ templates_attributes = Dir.glob(File.expand_path("config/templates/attributes/*.yml", root_path)).collect do |template|
11
+ YAML.load_file(template)
12
+ end.reduce Hash.new, :merge
11
13
 
14
+ options = {}
12
15
  opts = OptionParser.new do |o|
13
16
  o.banner = 'Usage: vagrant templated init [options] <template>'
14
17
 
15
18
  o.separator ''
16
- o.separator 'Templates availables: rails'
19
+ o.separator 'Templates availables:'
17
20
  o.separator ''
18
- o.separator ' rails5'
19
- o.separator ' vagrant-plugin'
21
+ templates_attributes.keys.each do |template|
22
+ o.separator " #{template}"
23
+ end
20
24
 
21
25
  o.separator ''
22
26
  o.separator 'Options:'
23
27
  o.separator ''
24
28
 
25
- o.on('-f', '--force', 'Overwrite an existing box if it exists') do |f|
26
- options[:force] = f
27
- end
28
-
29
29
  o.on('-s', '--suffix SUFFIX', String,
30
- "Output suffix for Vagrantfile and Bersfile. '-' for stdout") do |suffix|
30
+ "Output suffix for Vagrantfile and Berksfile. '-' for stdout") do |suffix|
31
31
  options[:suffix] = suffix
32
32
  end
33
+
34
+ o.on('-f', '--force', 'Overwrite an existing box if it exists') do |f|
35
+ options[:force] = f
36
+ end
33
37
  end
34
38
 
35
39
  argv = parse_options(opts)
@@ -46,7 +50,8 @@ module Vagrant
46
50
  end
47
51
 
48
52
  @env.ui.info("Detected template: #{template}", prefix: false, color: :yellow)
49
- raise Vagrant::Errors::VagrantTemplatedOptionNotFound unless defaults.keys.include? template
53
+ raise Vagrant::Errors::VagrantTemplatedOptionNotFound unless templates_attributes.keys.include? template
54
+ template_attributes = templates_attributes[template]
50
55
 
51
56
  vagrantfile_save_path = nil
52
57
  berksfile_save_path = nil
@@ -59,8 +64,8 @@ module Vagrant
59
64
  raise Vagrant::Errors::BerksfileTemplatedExistsError if berksfile_save_path.exist?
60
65
  end
61
66
 
62
- vagrantfile = ERB.new File.read(File.join(File.dirname(__FILE__), '../templates/Vagrantfile.erb')), nil, '-'
63
- berksfile = ERB.new File.read(File.join(File.dirname(__FILE__), '../templates/Berksfile.erb')), nil, '-'
67
+ vagrantfile = ERB.new File.read(File.expand_path('config/templates/files/Vagrantfile.erb', root_path)), nil, '-'
68
+ berksfile = ERB.new File.read(File.expand_path('config/templates/files/Berksfile.erb', root_path)), nil, '-'
64
69
 
65
70
  contents = vagrantfile.result binding
66
71
  if vagrantfile_save_path
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Templated
3
- VERSION = '0.1.2'
3
+ VERSION = '0.1.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-templated
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Álvaro Faúndez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-04 00:00:00.000000000 Z
11
+ date: 2017-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -77,17 +77,20 @@ files:
77
77
  - bin/console
78
78
  - bin/setup
79
79
  - config/locales/en.yml
80
+ - config/templates/attributes/rails5.yml
81
+ - config/templates/attributes/vagrant-plugin.yml
82
+ - config/templates/files/Berksfile.erb
83
+ - config/templates/files/Vagrantfile.erb
80
84
  - lib/vagrant-templated.rb
81
85
  - lib/vagrant-templated/command/init.rb
82
86
  - lib/vagrant-templated/command/root.rb
83
87
  - lib/vagrant-templated/errors.rb
84
88
  - lib/vagrant-templated/plugin.rb
85
- - lib/vagrant-templated/templates/Berksfile.erb
86
- - lib/vagrant-templated/templates/Vagrantfile.erb
87
- - lib/vagrant-templated/templates/defaults.yml
88
89
  - lib/vagrant-templated/version.rb
89
90
  - spec/spec_helper.rb
90
91
  - spec/tmp/.keep
92
+ - spec/tmp/Berksfile
93
+ - spec/tmp/Vagrantfile
91
94
  - spec/vagrant_templated_spec.rb
92
95
  - vagrant-templated.gemspec
93
96
  homepage: https://github.com/afaundez/vagrant-templated