bib-vagrant 0.1.3 → 0.1.4
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 +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:
|