vagrant-templated 0.1.2 → 0.1.3

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: 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