bib-vagrant 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 +4 -4
- data/README.md +24 -1
- data/lib/bib/bib_vagrant.rb +145 -63
- data/lib/bib/bib_vagrant_config.rb +94 -0
- data/lib/bib/bib_vagrant_npm_provisioner.rb +6 -0
- data/lib/bib/vagrant.rb +1 -0
- data/lib/bib/version.rb +1 -1
- data/test/config_test.rb +1 -0
- metadata +27 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7133007baecfa23b1110bb1da199c3287ca47c24
|
4
|
+
data.tar.gz: cdd0a1c46083cf22fe43e000217a2621668ede60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 152b6356535d41c0bf127a49fce4507b24d568916d59f66ffdc81948526d5af668285202eea17960030f6ab38c1cc454149050c982ea4eb617c6b613836fc323
|
7
|
+
data.tar.gz: 0bc5861591fc18e20184ea6ee386cd10543c65053eb773d3f9796c3436eecd877ece2c60aba8e370cc3d7b196c4d04a12f66b2328eb41d171b5d1c3f4c2e41fc
|
data/README.md
CHANGED
@@ -117,7 +117,30 @@ npm_userpass: <npm or github authentication token>
|
|
117
117
|
|
118
118
|
NOTE: the npm_registry should be in the format of 'http[s]://host.domain.tld/' - The trailing slash is important
|
119
119
|
|
120
|
+
## Developing and Testing
|
121
|
+
|
122
|
+
Make sure you are using a Bundler version which is compatible with Vagrant which comes from GitHub like defined here:
|
123
|
+
|
124
|
+
```
|
125
|
+
group :development do
|
126
|
+
gem 'vagrant', git: 'https://github.com/mitchellh/vagrant.git'
|
127
|
+
end
|
128
|
+
```
|
129
|
+
|
130
|
+
Bundler version 1.7.15 works fine and can be installed like this:
|
131
|
+
|
132
|
+
```
|
133
|
+
gem install bundler -v '~> 1.7.0'
|
134
|
+
```
|
135
|
+
|
136
|
+
Then, when you want to test Bib Vagrant use:
|
137
|
+
|
138
|
+
```
|
139
|
+
bundle _1.7.15_ exec vagrant
|
140
|
+
```
|
141
|
+
|
142
|
+
Happy developing and testing.
|
143
|
+
|
120
144
|
## Contributing
|
121
145
|
|
122
146
|
See [Contributing](CONTRIBUTING.md)
|
123
|
-
|
data/lib/bib/bib_vagrant.rb
CHANGED
@@ -1,93 +1,175 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
|
+
|
4
|
+
class String
|
5
|
+
def red
|
6
|
+
"\033[31m#{self}\033[0m"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
|
3
11
|
module Bib
|
4
12
|
module Vagrant
|
5
|
-
class
|
6
|
-
|
7
|
-
|
13
|
+
class << self
|
14
|
+
# Checks for plugins and takes a plugin list plus optional true/false for checking some
|
15
|
+
# _esoteric_ plugin constellation, see Bib::Vagrant#check_esoteric_plugin_constellation.
|
16
|
+
#
|
17
|
+
# ==== Example where given plugins are all mandatory (plugins are given as an array)
|
18
|
+
#
|
19
|
+
# Bib::Vagrant.check_plugins(['landrush', 'vagrant-hosts'])
|
20
|
+
#
|
21
|
+
# ==== Example where a plugin may be mandatory but doesn't need to (plugins are given as a hash)
|
22
|
+
#
|
23
|
+
# Bib::Vagrant.check_plugins(
|
24
|
+
# {
|
25
|
+
# 'landrush' => true,
|
26
|
+
# 'vagrant-hosts' => false
|
27
|
+
# },
|
28
|
+
# true
|
29
|
+
# )
|
30
|
+
def check_plugins(plugins, check_esoteric_plugin_constellation = true)
|
31
|
+
complete = true
|
32
|
+
|
33
|
+
plugins.each do |plugin, mandatory|
|
34
|
+
next if ::Vagrant.has_plugin?(plugin)
|
35
|
+
next if ENV['VAGRANT_CI']
|
36
|
+
puts "!!! - You are missing a plugin: #{plugin}"
|
37
|
+
puts '---'
|
38
|
+
puts "### - Please run: vagrant plugin install #{plugin}"
|
39
|
+
puts '---'
|
40
|
+
puts "!!! - Read more here: #{plugin_list[plugin]}"
|
41
|
+
complete = false if mandatory
|
42
|
+
end
|
8
43
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
44
|
+
if check_esoteric_plugin_constellation
|
45
|
+
complete = self.check_esoteric_plugin_constellation ? complete : false
|
46
|
+
end
|
13
47
|
|
14
|
-
|
15
|
-
|
48
|
+
complete
|
49
|
+
end
|
16
50
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
51
|
+
# Checks for some _esoteric_ plugin constellation.
|
52
|
+
#
|
53
|
+
# Please follow the output instructions when the _esoteric_ constellation is met.
|
54
|
+
def check_esoteric_plugin_constellation
|
55
|
+
complete = true
|
56
|
+
|
57
|
+
if ::Vagrant.has_plugin?('landrush') && !Gem.loaded_specs['celluloid'].nil?
|
58
|
+
if Gem.loaded_specs['celluloid'].version.to_s == '0.16.1'
|
59
|
+
puts 'This is an esoteric issue for vagrant 1.7.4/landrush 18 and virtualbox 5.x'
|
60
|
+
puts 'celluloid is 0.16.1'
|
61
|
+
puts 'Please do the following on your HOST OS'
|
62
|
+
puts ' export GEM_HOME=~/.vagrant.d/gems'
|
63
|
+
puts ' gem uninstall celluloid -v 0.16.1'
|
64
|
+
puts ' gem install celluloid -v 0.16.0'
|
65
|
+
complete = false
|
66
|
+
end
|
23
67
|
end
|
24
68
|
|
25
|
-
|
69
|
+
complete
|
26
70
|
end
|
27
71
|
|
28
|
-
|
29
|
-
|
72
|
+
# Returns an array which lists plugins to check where index is the name of the plugin and value
|
73
|
+
# is the url where the user can get more information about it.
|
74
|
+
def plugin_list
|
75
|
+
{
|
76
|
+
'landrush' => 'https://github.com/phinze/landrush',
|
77
|
+
'vagrant-hosts' => 'https://github.com/adrienthebo/vagrant-hosts',
|
78
|
+
'vagrant-faster' => 'https://github.com/rdsubhas/vagrant-faster#how-much-does-it-allocate',
|
79
|
+
'vagrant-cachier' => 'https://github.com/easybib/issues/wiki/Knowledgebase:-Global-Vagrant-setup#enable-vagrant-cachier-globally',
|
80
|
+
'bib-vagrant' => 'See https://github.com/easybiblabs/bib-vagrant/blob/master/README.md'
|
81
|
+
}
|
30
82
|
end
|
31
83
|
|
32
|
-
def
|
33
|
-
|
84
|
+
def init_github_hostkey(machine)
|
85
|
+
machine.vm.provision 'shell' do |s|
|
86
|
+
s.inline = 'ssh -T git@github.com -o StrictHostKeyChecking=no; exit 0'
|
87
|
+
s.privileged = false
|
88
|
+
end
|
34
89
|
end
|
35
90
|
|
36
|
-
def
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
91
|
+
def check_gatling
|
92
|
+
unless ::Vagrant.has_plugin?('vagrant-gatling-rsync')
|
93
|
+
puts "\nERROR: you're using rsync - you'll need the vagrant-gatling-rsync plugin\n"
|
94
|
+
puts 'do'
|
95
|
+
puts "\n\tvagrant plugin install vagrant-gatling-rsync\n\n"
|
96
|
+
puts "(also: see the README for how to increase the inotify limit)\n"
|
97
|
+
exit 1
|
41
98
|
end
|
99
|
+
puts "\nNOTE: you're using rsync, run\n\n\tvagrant gatling-rsync-auto\n\nto auto-sync the shared folders\n\n"
|
100
|
+
end
|
42
101
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
errors << "chef_log_level: must be one of #{log_level.join}" unless log_level.include?(config['chef_log_level'])
|
102
|
+
def install_node_artifacts(machine, node_uri)
|
103
|
+
machine.vm.provision 'shell', inline: <<-SHELL
|
104
|
+
echo "grabbing /usr/lib/node_modules.."
|
105
|
+
sudo wget --continue -O /tmp/usr_node.tgz #{node_uri}
|
106
|
+
sudo mkdir -p /usr/lib/node_modules
|
107
|
+
sudo tar --overwrite -zxof /tmp/usr_node.tgz -C /usr/lib/
|
108
|
+
echo ".. done."
|
109
|
+
SHELL
|
110
|
+
end
|
53
111
|
|
54
|
-
|
55
|
-
|
112
|
+
def add_composertoken_to_dna(dna, vagrantconfig)
|
113
|
+
if vagrantconfig.key?('composer_github_token') && !vagrantconfig['composer_github_token'].empty?
|
114
|
+
puts "[info] Replacing OAuth2 Token for composer with user token: #{vagrantconfig['composer_github_token']}"
|
115
|
+
dna['composer']['oauth_key'] = vagrantconfig['composer_github_token']
|
116
|
+
else
|
117
|
+
puts "[error] You don't have a token setup in!".red
|
118
|
+
puts ' 1. https://github.com/settings/tokens (with repo scope only)'
|
119
|
+
puts ' 2. Add this line to ~/.config/easybib/vagrantdefault.yml:'
|
120
|
+
puts ' composer_github_token: your-token-here'
|
121
|
+
puts ''
|
122
|
+
puts "Run `vagrant #{ARGV[0]}` again!"
|
123
|
+
exit
|
56
124
|
end
|
125
|
+
dna
|
126
|
+
end
|
57
127
|
|
58
|
-
|
59
|
-
|
60
|
-
|
128
|
+
def prepare_app_settings(vagrantconfig, machine, dna, applicationlist = 'applications')
|
129
|
+
dna = add_composertoken_to_dna(dna, vagrantconfig)
|
130
|
+
dna['vagrant'][applicationlist].each do |app, app_config|
|
131
|
+
vagrant_share = File.expand_path(app_config['app_root_location'])
|
132
|
+
host_folder = "#{File.dirname(__FILE__)}/sites/#{app}"
|
133
|
+
if vagrantconfig['nfs']
|
134
|
+
machine.vm.synced_folder host_folder, vagrant_share, type: 'nfs', mount_options: ['nolock,vers=3,udp,noatime,actimeo=1']
|
135
|
+
elsif vagrantconfig['rsync']
|
136
|
+
machine.vm.synced_folder host_folder, vagrant_share, type: 'rsync'
|
137
|
+
else
|
138
|
+
machine.vm.synced_folder host_folder, vagrant_share, owner: 'vagrant'
|
139
|
+
end
|
140
|
+
end
|
141
|
+
dna
|
61
142
|
end
|
62
143
|
|
63
|
-
|
144
|
+
def setup_landrush_hostnames(config, host_ip, dna, applicationlist = 'applications')
|
145
|
+
hosts_list = []
|
64
146
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
puts 'INFO: You probably want to fix the path to the cookbooks in this file.' if @@verbose
|
147
|
+
dna['vagrant'][applicationlist].each do |_app, app_config|
|
148
|
+
# Populate Landrush and vagrant-hosts
|
149
|
+
host_name = "#{app_config['domain_name']}"
|
150
|
+
hosts_list.push(host_name)
|
151
|
+
config.landrush.host host_name, host_ip
|
71
152
|
end
|
72
|
-
rescue
|
73
|
-
puts "WARNING: Unable to create default #{localconfigpath} - please do it manually." if @@verbose
|
74
|
-
end
|
75
153
|
|
76
|
-
|
77
|
-
{
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
'gui' => false
|
83
|
-
}
|
154
|
+
# This loop will actually populate the /etc/hsots on the guest and host OS via vagrant-hosts
|
155
|
+
hosts_flat = hosts_list.map { |name| name.split(' ') }.flatten.uniq
|
156
|
+
config.vm.provision :hosts do |provisioner|
|
157
|
+
# Add a single hostname
|
158
|
+
provisioner.add_host host_ip, hosts_flat
|
159
|
+
end
|
84
160
|
end
|
85
161
|
|
86
|
-
def
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
162
|
+
def default_provision(machine)
|
163
|
+
# remove locale passing via ssh also generate a default locale on the guest OS
|
164
|
+
machine.vm.provision 'shell', inline: 'sed -i "s/@AcceptEnv LANG LC_\*/# AcceptEnv LANG LC_\*/g" /etc/ssh/sshd_config'
|
165
|
+
machine.vm.provision 'shell', inline: 'locale-gen en_US.UTF-8'
|
166
|
+
|
167
|
+
# uncomment the next line and re-run provision if you end up with a
|
168
|
+
# "Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt" error:
|
169
|
+
# machine.vm.provision "shell", inline: "apt-spy2 fix --commit --launchpad --country=US"
|
170
|
+
# machine.vm.provision "shell", inline: "apt-spy2 fix --commit --launchpad --country=Germany"
|
171
|
+
|
172
|
+
machine.vm.provision 'shell', inline: 'apt-get update -y'
|
91
173
|
end
|
92
174
|
end
|
93
175
|
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module Bib
|
4
|
+
module Vagrant
|
5
|
+
class Config
|
6
|
+
@@home_dir = nil
|
7
|
+
@@verbose = true
|
8
|
+
|
9
|
+
def initialize(home = '~', verbose = true)
|
10
|
+
@@home = home
|
11
|
+
@@verbose = verbose
|
12
|
+
end
|
13
|
+
|
14
|
+
def get
|
15
|
+
vagrantconfig = get_defaults
|
16
|
+
|
17
|
+
begin
|
18
|
+
localconfigfile = File.open(get_path, 'r')
|
19
|
+
vagrantconfig.merge!(YAML.load(localconfigfile.read))
|
20
|
+
rescue Errno::ENOENT
|
21
|
+
puts 'WARNING: No vagrant user-config found, using default cookbook path' if @@verbose
|
22
|
+
create(get_path, vagrantconfig)
|
23
|
+
end
|
24
|
+
|
25
|
+
vagrantconfig
|
26
|
+
end
|
27
|
+
|
28
|
+
def has?
|
29
|
+
File.exist?(get_path)
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_path
|
33
|
+
File.expand_path("#{@@home}/.config/easybib/vagrantdefault.yml")
|
34
|
+
end
|
35
|
+
|
36
|
+
def validate!(config)
|
37
|
+
current_config_keys = config.keys
|
38
|
+
|
39
|
+
get_defaults.keys.each do |required_key|
|
40
|
+
fail "Missing #{required_key}!" unless current_config_keys.include?(required_key)
|
41
|
+
end
|
42
|
+
|
43
|
+
errors = []
|
44
|
+
log_level = %w(debug info warn error fatal)
|
45
|
+
bool = [TrueClass, FalseClass]
|
46
|
+
|
47
|
+
cookbook_path = File.expand_path(config['cookbook_path'])
|
48
|
+
|
49
|
+
errors << 'nfs: must be a boolean' unless bool.include?(config['nfs'].class)
|
50
|
+
errors << 'gui: must be a boolean' unless bool.include?(config['gui'].class)
|
51
|
+
errors << 'cookbook_path: does not exist' unless File.directory?(cookbook_path)
|
52
|
+
errors << "chef_log_level: must be one of #{log_level.join}" unless log_level.include?(config['chef_log_level'])
|
53
|
+
|
54
|
+
unless config['additional_json'].empty?
|
55
|
+
errors << 'additional_json: must be empty or valid json' unless is_valid_json?(config['additional_json'])
|
56
|
+
end
|
57
|
+
|
58
|
+
return true if errors.count == 0
|
59
|
+
|
60
|
+
fail "Errors: #{errors.join(', ')}"
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def create(localconfigpath, vagrantconfig)
|
66
|
+
FileUtils.mkdir_p(File.dirname(localconfigpath))
|
67
|
+
File.open(localconfigpath, 'w+') do |file|
|
68
|
+
file.write(vagrantconfig.to_yaml)
|
69
|
+
puts "INFO: Created default vagrant user-config in #{localconfigpath}" if @@verbose
|
70
|
+
puts 'INFO: You probably want to fix the path to the cookbooks in this file.' if @@verbose
|
71
|
+
end
|
72
|
+
rescue
|
73
|
+
puts "WARNING: Unable to create default #{localconfigpath} - please do it manually." if @@verbose
|
74
|
+
end
|
75
|
+
|
76
|
+
def get_defaults
|
77
|
+
{
|
78
|
+
'nfs' => false,
|
79
|
+
'cookbook_path' => '~/Sites/easybib/cookbooks',
|
80
|
+
'chef_log_level' => 'debug',
|
81
|
+
'additional_json' => '{}',
|
82
|
+
'gui' => false
|
83
|
+
}
|
84
|
+
end
|
85
|
+
|
86
|
+
def is_valid_json?(json)
|
87
|
+
JSON.parse(json)
|
88
|
+
return true
|
89
|
+
rescue JSON::ParserError
|
90
|
+
false
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -18,6 +18,12 @@ end
|
|
18
18
|
class BibConfigurePlugin < Vagrant.plugin('2')
|
19
19
|
name 'NPM configuration Provisioner'
|
20
20
|
|
21
|
+
# Create a local config, unless it already exists
|
22
|
+
action_hook(:environment_load) do |hook|
|
23
|
+
config = Bib::Vagrant::Config.new
|
24
|
+
config.get # Creates the config file unless existing already and the gets it
|
25
|
+
end
|
26
|
+
|
21
27
|
# This plugin provides a provisioner called unix_reboot.
|
22
28
|
provisioner 'bib_configure_npm' do
|
23
29
|
# Create a provisioner.
|
data/lib/bib/vagrant.rb
CHANGED
data/lib/bib/version.rb
CHANGED
data/test/config_test.rb
CHANGED
metadata
CHANGED
@@ -1,127 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bib-vagrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- '
|
8
|
-
- '
|
9
|
-
- '
|
7
|
+
- "'tillk',"
|
8
|
+
- "'fh',"
|
9
|
+
- "'gilleyj'"
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-02-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.18.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.18.1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: colored
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '1.2'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '1.2'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rest_client
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: json
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0'
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: bundler
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- - ~>
|
75
|
+
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '1.5'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- - ~>
|
82
|
+
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '1.5'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rake
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0'
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- -
|
96
|
+
- - ">="
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '0'
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: minitest
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- - ~>
|
103
|
+
- - "~>"
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: 5.0.8
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
|
-
- - ~>
|
110
|
+
- - "~>"
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: 5.0.8
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: coveralls
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
|
-
- -
|
124
|
+
- - ">="
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '0'
|
127
127
|
description: A rubygem to centralize configuration and setup in every project's Vagrantfile
|
@@ -132,8 +132,8 @@ executables:
|
|
132
132
|
extensions: []
|
133
133
|
extra_rdoc_files: []
|
134
134
|
files:
|
135
|
-
- .gitignore
|
136
|
-
- .travis.yml
|
135
|
+
- ".gitignore"
|
136
|
+
- ".travis.yml"
|
137
137
|
- CONTRIBUTING.md
|
138
138
|
- Gemfile
|
139
139
|
- LICENSE.txt
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- bib-vagrant.gemspec
|
144
144
|
- bin/bib-vagrant
|
145
145
|
- lib/bib/bib_vagrant.rb
|
146
|
+
- lib/bib/bib_vagrant_config.rb
|
146
147
|
- lib/bib/bib_vagrant_npm_provisioner.rb
|
147
148
|
- lib/bib/plugin.rb
|
148
149
|
- lib/bib/vagrant.rb
|
@@ -158,20 +159,19 @@ require_paths:
|
|
158
159
|
- lib
|
159
160
|
required_ruby_version: !ruby/object:Gem::Requirement
|
160
161
|
requirements:
|
161
|
-
- -
|
162
|
+
- - ">="
|
162
163
|
- !ruby/object:Gem::Version
|
163
164
|
version: '0'
|
164
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
166
|
requirements:
|
166
|
-
- -
|
167
|
+
- - ">="
|
167
168
|
- !ruby/object:Gem::Version
|
168
169
|
version: '0'
|
169
170
|
requirements: []
|
170
171
|
rubyforge_project:
|
171
|
-
rubygems_version: 2.
|
172
|
+
rubygems_version: 2.4.8
|
172
173
|
signing_key:
|
173
174
|
specification_version: 4
|
174
175
|
summary: Centralize configuration and setup
|
175
176
|
test_files:
|
176
177
|
- test/config_test.rb
|
177
|
-
has_rdoc:
|