vagrant-environments 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/Vagrantfile +13 -0
- data/lib/vagrant-environments/command.rb +43 -0
- data/lib/vagrant-environments/config.rb +66 -0
- data/lib/vagrant-environments/environment.rb +21 -0
- data/lib/vagrant-environments/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcbb1c998025549e2e5cfa6f72552b5e22443102
|
4
|
+
data.tar.gz: 058f3d1df3d99e9fb55872f22d96b6e43f56a030
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98f2ddaa612efbd189e749c2ca79a12230851c0f1eec3aaffa908efb7e3a2027ecb966d60300d22eecd3ebc0ab62c7227be65d495eb719b300825927df062a59
|
7
|
+
data.tar.gz: c03f1fc3e97f934dadc3df3067c9f4a4d403449628b24daf65ed5352473d433c556cb9dea58b1c088617bcb7c97539bf7a68ca06c854f1dfd5ecc67a244cd4bf
|
data/.gitignore
CHANGED
data/Vagrantfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Vagrant.configure("2") do |config|
|
2
|
+
|
3
|
+
config.environment.define config do |machine, options, env_settings|
|
4
|
+
machine.vm.network :private_network, ip: options["ip"]
|
5
|
+
|
6
|
+
machine.vm.provider :virtualbox do |vb, override|
|
7
|
+
vb.customize ["modifyvm", :id, "--memory", "2048"]
|
8
|
+
vb.customize ["modifyvm", :id, "--cpus", options["cpu"]]
|
9
|
+
override.vm.box = "centos6.3_x86_64_500g"
|
10
|
+
override.vm.box_url = "http://vbox.sciencescape.org/centos6.3_x86_64_500g.box"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Plugin
|
3
|
+
module V2
|
4
|
+
# This is the base class for a CLI command.
|
5
|
+
class Command
|
6
|
+
protected
|
7
|
+
# Parses the options given an OptionParser instance.
|
8
|
+
#
|
9
|
+
# This is a convenience method that properly handles duping the
|
10
|
+
# originally argv array so that it is not destroyed.
|
11
|
+
#
|
12
|
+
# This method will also automatically detect "-h" and "--help"
|
13
|
+
# and print help. And if any invalid options are detected, the help
|
14
|
+
# will be printed, as well.
|
15
|
+
#
|
16
|
+
# If this method returns `nil`, then you should assume that help
|
17
|
+
# was printed and parsing failed.
|
18
|
+
def parse_options(opts=nil)
|
19
|
+
p "Overriden-----------------------------------------"
|
20
|
+
# Creating a shallow copy of the arguments so the OptionParser
|
21
|
+
# doesn't destroy the originals.
|
22
|
+
argv = @argv
|
23
|
+
# Default opts to a blank optionparser if none is given
|
24
|
+
opts ||= OptionParser.new
|
25
|
+
# Add the help option, which must be on every command.
|
26
|
+
opts.on_tail("-h", "--help", "Print this help") do
|
27
|
+
safe_puts(opts.help)
|
28
|
+
return nil
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on("-e ENVIRONMENT", "--environment ENVIRONMENT", "Define environment") do |environment|
|
32
|
+
ENV['VAGRANT_ENVIRONMENT'] = environment if !ENV.has_key?('VAGRANT_ENVIRONMENT') || ENV['VAGRANT_ENVIRONMENT'].nil?
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.parse!(argv)
|
36
|
+
return argv
|
37
|
+
rescue OptionParser::InvalidOption
|
38
|
+
raise Errors::CLIInvalidOptions, help: opts.help.chomp
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module Environments
|
5
|
+
class Config < Vagrant.plugin(2, :config)
|
6
|
+
attr_accessor :file, :active
|
7
|
+
attr_reader :data
|
8
|
+
|
9
|
+
DEFAULT_SETTINGS = {
|
10
|
+
file: 'environments.yaml'
|
11
|
+
}.freeze
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@file = UNSET_VALUE
|
15
|
+
@active = UNSET_VALUE
|
16
|
+
end
|
17
|
+
|
18
|
+
def file=(path)
|
19
|
+
@file = path unless path.empty?
|
20
|
+
end
|
21
|
+
|
22
|
+
def active
|
23
|
+
|
24
|
+
if @active == UNSET_VALUE && !ENV['VAGRANT_ENVIRONMENT'].nil?
|
25
|
+
@active = ENV['VAGRANT_ENVIRONMENT']
|
26
|
+
end
|
27
|
+
|
28
|
+
@active
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def data
|
33
|
+
finalize!
|
34
|
+
environments = YAML.load_file(@file)
|
35
|
+
environments[@active]
|
36
|
+
end
|
37
|
+
|
38
|
+
def validate(_)
|
39
|
+
finalize!
|
40
|
+
errors = _detected_errors
|
41
|
+
|
42
|
+
if File.file?(@file)
|
43
|
+
|
44
|
+
begin
|
45
|
+
environments = YAML.load_file(@file)
|
46
|
+
errors.push("There is no #{@active} environment in #{@file}") unless environments.has_key?(@active)
|
47
|
+
rescue Exception
|
48
|
+
errors.push("file #{@file} have wrong format")
|
49
|
+
end
|
50
|
+
|
51
|
+
else
|
52
|
+
errors.push("file #{@file} does not exists")
|
53
|
+
end
|
54
|
+
|
55
|
+
{ 'environments' => errors }
|
56
|
+
end
|
57
|
+
|
58
|
+
def finalize!
|
59
|
+
@file = DEFAULT_SETTINGS[:file] if @file == UNSET_VALUE
|
60
|
+
active
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
end #Config
|
65
|
+
end #Envrionments
|
66
|
+
end # VagrantPlugins
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Environments
|
3
|
+
class Environment < Vagrant.plugin(2, :config)
|
4
|
+
|
5
|
+
def define(config, &block)
|
6
|
+
settings = config.environments.data
|
7
|
+
settings["machines"].each do |name, options|
|
8
|
+
config.vm.define [config.environments.active, name].join('__') do |machine|
|
9
|
+
block.call(machine, options, settings["configs"])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def validate(_)
|
15
|
+
errors = _detected_errors
|
16
|
+
{ 'environment' => errors }
|
17
|
+
end
|
18
|
+
|
19
|
+
end #Environment
|
20
|
+
end #Envrionments
|
21
|
+
end # VagrantPlugins
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-environments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Rodionov
|
@@ -23,6 +23,7 @@ files:
|
|
23
23
|
- LICENSE.md
|
24
24
|
- README.md
|
25
25
|
- Rakefile
|
26
|
+
- Vagrantfile
|
26
27
|
- cucumber.yml
|
27
28
|
- features/step_definitions/steps.rb
|
28
29
|
- features/support/env.rb
|
@@ -33,6 +34,9 @@ files:
|
|
33
34
|
- features/vagrant-exec/prepend.feature
|
34
35
|
- features/vagrant-exec/validations.feature
|
35
36
|
- lib/vagrant-environments.rb
|
37
|
+
- lib/vagrant-environments/command.rb
|
38
|
+
- lib/vagrant-environments/config.rb
|
39
|
+
- lib/vagrant-environments/environment.rb
|
36
40
|
- lib/vagrant-environments/plugin.rb
|
37
41
|
- lib/vagrant-environments/version.rb
|
38
42
|
- vagrant-environments.gemspec
|