vagrant-environments 0.1.0 → 0.1.1
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/.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
|