vagrant-templated 0.1.3 → 0.1.4

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: 77e216d71b5a1c6413ffa0cf9d4bc88b7d7aa0ca
4
- data.tar.gz: 625c7ee241d9b164738504bd588de57ddb93915b
3
+ metadata.gz: 4307eaa387b3de9e14771895cb18f1e7d77010e5
4
+ data.tar.gz: ee3af7cf57704b6e792c315e2247ff00f8acc49b
5
5
  SHA512:
6
- metadata.gz: 3ec071972e9006ac2fb265f7d6baff96bf0d4b9080e7b54f20393904fb21b040d7aec1b74e334d2c204260568dabc329bfb66b628db411438a64cde6ffd47dcd
7
- data.tar.gz: e413ed3c16e7a8cbd3edf3510711fea2ea61e39d8dc80bc439487317f70f5704ea15d692d90744e2938321543a03346e7e76c6957aad0da3239ceb924ba91d2d
6
+ metadata.gz: 7829b77b92087c4354d041f3988a852c65741ae747bb6418e09bc826f260c9ac4d3795e43f18ffd39e556785800ca798833490f3d06a831dff0ba4908084c387
7
+ data.tar.gz: 68913f04ebb573382d6d9d61cb6730c8af1bc72b781fae05df8af4814624c24e1fdda7c7826ab7fc4fd20cfeeae6bad74abc4eed38f9633fbb9bba8ac99dea82
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.1.4] - 2017-08-05
10
+ ### Added
11
+ - Test all templates
12
+ - Add comment attribute to private network
13
+ - Add django1.11 template, with pyenv, including python 2 and 3
14
+ - Add basic template, only apt and tz update
15
+ - Add private network configuration and use it at rails5 template
16
+
9
17
  ## [0.1.3] - 2017-08-05
10
18
  ### Added
11
19
  - Refactor defaults to attributes, it's more self documented now
data/Gemfile.lock CHANGED
@@ -23,7 +23,7 @@ GIT
23
23
  PATH
24
24
  remote: .
25
25
  specs:
26
- vagrant-templated (0.1.2)
26
+ vagrant-templated (0.1.3)
27
27
 
28
28
  GEM
29
29
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -23,7 +23,12 @@ The new init action runs like this:
23
23
  vagrant templated init <template>
24
24
  ```
25
25
 
26
- The templates available at this moment are `rails5` and `vagrant-plugin`.
26
+ The templates available at this moment are:
27
+
28
+ - `base`: apt and timezone update
29
+ - `vagrant-plugin`: base and ruby 2.3
30
+ - `django1.11`: base, python 2/3 (pyenv)
31
+ - `rails5`: base, ruby 2.4 (rbenv), node and postgresql.
27
32
 
28
33
  In both cases a Vagrantfile and a Berksfile will be generated where you executing the command.
29
34
 
@@ -37,6 +42,14 @@ After checking out the repo, run `bundle install` to install dependencies. Then,
37
42
 
38
43
  Bug reports and pull requests are welcome on GitHub at https://github.com/afaundes/vagrant-templated. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
39
44
 
45
+ ## TODO list
46
+
47
+ - Refactor template management in a isolated component, making plugin more skinnier
48
+ - Add multiple choices for some components. For example, rails5 add postgresql by default, but it could be mysql or sqlite3 (that what I have used). Maybe it would better to add everything and leave everything commented but one default.
49
+ - Display ad hoc tips when new files are created
50
+ - Add tips as a command
51
+ - Refactor versions, maybe add version to the options
52
+
40
53
  ## License
41
54
 
42
55
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,17 @@
1
+ base:
2
+ omnibus:
3
+ chef_version: latest
4
+ berkself:
5
+ cookbooks:
6
+ apt: ~> 6.1.3
7
+ timezone_iii: ~> 1.0.4
8
+ chef:
9
+ recipes:
10
+ - apt
11
+ - timezone_iii
12
+ json:
13
+ timezone_iii: UTC
14
+ require:
15
+ vagrant-plugins:
16
+ - vagrant-omnibus
17
+ - vagrant-berkshelf
@@ -0,0 +1,32 @@
1
+ django1.11:
2
+ omnibus:
3
+ chef_version: 12.21.1
4
+ network:
5
+ private_network:
6
+ ip: 192.168.33.101
7
+ comments:
8
+ - "TIP: Change the IP if it causes problem"
9
+ - "TIP: Make sure to have something like this on your settings.py:"
10
+ - "ALLOWED_HOSTS = ['192.168.33.101', 'localhost', '127.0.0.1']"
11
+ berkself:
12
+ cookbooks:
13
+ apt: ~> 6.1.3
14
+ timezone_iii: ~> 1.0.4
15
+ pyenv: ~> 0.1.4
16
+ chef:
17
+ recipes:
18
+ - apt
19
+ - timezone_iii
20
+ - pyenv::user
21
+ json:
22
+ timezone: UTC
23
+ pyenv:
24
+ user_installs:
25
+ - user: vagrant
26
+ pythons:
27
+ - 3.4.0
28
+ - 2.7.6
29
+ require:
30
+ vagrant-plugins:
31
+ - vagrant-omnibus
32
+ - vagrant-berkshelf
@@ -1,6 +1,11 @@
1
1
  rails5:
2
2
  omnibus:
3
3
  chef_version: 12.21.1
4
+ network:
5
+ private_network:
6
+ ip: 192.168.33.101
7
+ comments:
8
+ - "TIP: Change the IP if it causes problem"
4
9
  berkself:
5
10
  cookbooks:
6
11
  apt: ~> 6.1.0
@@ -12,6 +12,15 @@ end
12
12
 
13
13
  Vagrant.configure('2') do |config|
14
14
  config.vm.box = 'bento/ubuntu-16.04'
15
+
16
+ <%- if template_attributes['network'] && template_attributes['network']['private_network'] -%>
17
+
18
+ <%- Array(template_attributes['network']['private_network']['comments']).each do |comment| -%>
19
+ <%= "# #{comment.strip}" %>
20
+ <%- end -%>
21
+ config.vm.network 'private_network', ip: '<%= template_attributes['network']['private_network']['ip'] %>'
22
+
23
+ <%- end -%>
15
24
  config.omnibus.chef_version = '<%= template_attributes['omnibus']['chef_version'] %>'
16
25
  config.vm.provision :chef_solo do |chef|
17
26
  <%- template_attributes['chef']['recipes'].each do |recipe| -%>
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Templated
3
- VERSION = '0.1.3'
3
+ VERSION = '0.1.4'
4
4
  end
5
5
  end
@@ -0,0 +1,6 @@
1
+ # Berksfile generated with https://github.com/afaundez/vagrant-templated
2
+
3
+ source 'https://supermarket.chef.io'
4
+
5
+ cookbook 'apt', '~> 6.1.3'
6
+ cookbook 'timezone_iii', '~> 1.0.4'
@@ -0,0 +1,7 @@
1
+ DEPENDENCIES
2
+ apt (~> 6.1.3)
3
+ timezone_iii (~> 1.0.4)
4
+
5
+ GRAPH
6
+ apt (6.1.3)
7
+ timezone_iii (1.0.4)
@@ -0,0 +1,22 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+ # Vagrantfile generated with https://github.com/afaundez/vagrant-templated
4
+
5
+ ["vagrant-omnibus", "vagrant-berkshelf"].each do |plugin_name|
6
+ unless Vagrant.has_plugin? plugin_name
7
+ raise "#{plugin_name} plugin is required. Please run `vagrant plugin install #{plugin_name}`"
8
+ end
9
+ end
10
+
11
+ Vagrant.configure('2') do |config|
12
+ config.vm.box = 'bento/ubuntu-16.04'
13
+ config.omnibus.chef_version = 'latest'
14
+ config.vm.provision :chef_solo do |chef|
15
+ chef.add_recipe 'apt'
16
+ chef.add_recipe 'timezone_iii'
17
+
18
+ chef.json = {
19
+ "timezone_iii": "UTC"
20
+ }
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ # Berksfile generated with https://github.com/afaundez/vagrant-templated
2
+
3
+ source 'https://supermarket.chef.io'
4
+
5
+ cookbook 'apt', '~> 6.1.3'
6
+ cookbook 'timezone_iii', '~> 1.0.4'
7
+ cookbook 'pyenv', '~> 0.1.4'
@@ -0,0 +1,9 @@
1
+ DEPENDENCIES
2
+ apt (~> 6.1.3)
3
+ pyenv (~> 0.1.4)
4
+ timezone_iii (~> 1.0.4)
5
+
6
+ GRAPH
7
+ apt (6.1.3)
8
+ pyenv (0.1.4)
9
+ timezone_iii (1.0.4)
@@ -0,0 +1,38 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+ # Vagrantfile generated with https://github.com/afaundez/vagrant-templated
4
+
5
+ ["vagrant-omnibus", "vagrant-berkshelf"].each do |plugin_name|
6
+ unless Vagrant.has_plugin? plugin_name
7
+ raise "#{plugin_name} plugin is required. Please run `vagrant plugin install #{plugin_name}`"
8
+ end
9
+ end
10
+
11
+ Vagrant.configure('2') do |config|
12
+ config.vm.box = 'bento/ubuntu-16.04'
13
+
14
+ # TIP: choose an IP available in your network
15
+ config.vm.network 'private_network', ip: '192.168.33.101'
16
+
17
+ config.omnibus.chef_version = '12.21.1'
18
+ config.vm.provision :chef_solo do |chef|
19
+ chef.add_recipe 'apt'
20
+ chef.add_recipe 'timezone_iii'
21
+ chef.add_recipe 'pyenv::user'
22
+
23
+ chef.json = {
24
+ "timezone": "UTC",
25
+ "pyenv": {
26
+ "user_installs": [
27
+ {
28
+ "user": "vagrant",
29
+ "pythons": [
30
+ "3.4.0",
31
+ "2.7.6"
32
+ ]
33
+ }
34
+ ]
35
+ }
36
+ }
37
+ end
38
+ end
@@ -63,7 +63,31 @@ describe Vagrant::Templated::Command::Init do
63
63
  }.to raise_error Vagrant::Errors::BerksfileTemplatedExistsError
64
64
  end
65
65
 
66
- it 'should create Vagrantfile and Berksfile if both do not exist' do
66
+ it 'should create Vagrantfile and Berksfile if both do not exist using template base' do
67
+ expect{
68
+ described_class.new(['base'], @env).execute
69
+ }.to_not raise_error
70
+ expect(File.open(@vagrantfile).read).to include(vagrantfile_tag)
71
+ expect(File.open(@berksfile).read).to include(berksfile_tag)
72
+ end
73
+
74
+ it 'should create Vagrantfile and Berksfile if both do not exist using template vagrant-plugin' do
75
+ expect{
76
+ described_class.new(['vagrant-plugin'], @env).execute
77
+ }.to_not raise_error
78
+ expect(File.open(@vagrantfile).read).to include(vagrantfile_tag)
79
+ expect(File.open(@berksfile).read).to include(berksfile_tag)
80
+ end
81
+
82
+ it 'should create Vagrantfile and Berksfile if both do not exist using template django1.11' do
83
+ expect{
84
+ described_class.new(['django1.11'], @env).execute
85
+ }.to_not raise_error
86
+ expect(File.open(@vagrantfile).read).to include(vagrantfile_tag)
87
+ expect(File.open(@berksfile).read).to include(berksfile_tag)
88
+ end
89
+
90
+ it 'should create Vagrantfile and Berksfile if both do not exist using template rails5' do
67
91
  expect{
68
92
  described_class.new(['rails5'], @env).execute
69
93
  }.to_not raise_error
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-templated
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Álvaro Faúndez
@@ -77,6 +77,8 @@ files:
77
77
  - bin/console
78
78
  - bin/setup
79
79
  - config/locales/en.yml
80
+ - config/templates/attributes/base.yml
81
+ - config/templates/attributes/django1.11.yml
80
82
  - config/templates/attributes/rails5.yml
81
83
  - config/templates/attributes/vagrant-plugin.yml
82
84
  - config/templates/files/Berksfile.erb
@@ -91,6 +93,12 @@ files:
91
93
  - spec/tmp/.keep
92
94
  - spec/tmp/Berksfile
93
95
  - spec/tmp/Vagrantfile
96
+ - spec/tmp/basic/Berksfile
97
+ - spec/tmp/basic/Berksfile.lock
98
+ - spec/tmp/basic/Vagrantfile
99
+ - spec/tmp/django1.11/Berksfile
100
+ - spec/tmp/django1.11/Berksfile.lock
101
+ - spec/tmp/django1.11/Vagrantfile
94
102
  - spec/vagrant_templated_spec.rb
95
103
  - vagrant-templated.gemspec
96
104
  homepage: https://github.com/afaundez/vagrant-templated