vagrant-shell-commander 0.2.0 → 0.3.0

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.
data/Gemfile.lock CHANGED
@@ -1,19 +1,19 @@
1
1
  GIT
2
2
  remote: git://github.com/mitchellh/vagrant.git
3
- revision: 4638a7a0dff2a242ae583e045c56f6ce49191a4e
3
+ revision: 862331fbf02deb7f3c7e00967359e3debd1f9809
4
4
  specs:
5
- vagrant (1.3.2.dev)
5
+ vagrant (1.5.0.dev)
6
6
  childprocess (~> 0.3.7)
7
7
  erubis (~> 2.7.0)
8
8
  i18n (~> 0.6.0)
9
9
  log4r (~> 1.1.9)
10
10
  net-scp (~> 1.1.0)
11
- net-ssh (~> 2.6.6)
11
+ net-ssh (>= 2.6.6, < 2.8.0)
12
12
 
13
13
  PATH
14
14
  remote: .
15
15
  specs:
16
- vagrant-shell-commander (0.2.0)
16
+ vagrant-shell-commander (0.3.0)
17
17
 
18
18
  GEM
19
19
  remote: https://rubygems.org/
@@ -24,13 +24,13 @@ GEM
24
24
  ffi (~> 1.0, >= 1.0.11)
25
25
  diff-lcs (1.2.4)
26
26
  erubis (2.7.0)
27
- ffi (1.9.0)
28
- i18n (0.6.5)
27
+ ffi (1.9.3)
28
+ i18n (0.6.9)
29
29
  log4r (1.1.10)
30
30
  multi_json (1.7.7)
31
31
  net-scp (1.1.2)
32
32
  net-ssh (>= 2.6.5)
33
- net-ssh (2.6.8)
33
+ net-ssh (2.7.0)
34
34
  parallel (0.7.1)
35
35
  rake (10.1.0)
36
36
  reek (1.3.1)
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Federico Gimenez Nieto
1
+ Copyright (c) 2014 Federico Gimenez Nieto
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -26,7 +26,7 @@ execute:
26
26
 
27
27
  ## Usage
28
28
 
29
- To execute a command on all the machines:
29
+ The command line utility is very similar to the ```vagrant ssh -c``` builtin command, but with multinode support and additional options. To execute a command on all the machines:
30
30
 
31
31
  $ vagrant sh -c free
32
32
 
@@ -38,6 +38,14 @@ Specify the working directory (remember to quote multiword commands):
38
38
 
39
39
  $ vagrant sh -c 'ls -al' -d /srv/www
40
40
 
41
+ Execute as specific user:
42
+
43
+ $ vagrant sh -c 'cap production deploy' -u 'deployer'
44
+
45
+ Get help:
46
+
47
+ $ vagrant sh -h
48
+
41
49
  To execute a command once the machine(s) has booted, add this configuration option to the Vagrantfile:
42
50
 
43
51
  ```ruby
@@ -49,10 +57,6 @@ Vagrant.configure("2") do |config|
49
57
  end
50
58
  ```
51
59
 
52
- Get help:
53
-
54
- $ vagrant sh -h
55
-
56
60
  ## Contributing
57
61
 
58
62
  1. Fork it
@@ -61,3 +65,7 @@ Get help:
61
65
  4. Commit your changes (`git commit -am 'Add some feature'`)
62
66
  5. Push to the branch (`git push origin my-new-feature`)
63
67
  6. Create new Pull Request
68
+
69
+
70
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/fgimenez/vagrant-shell-commander/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
71
+
@@ -1,26 +1,33 @@
1
- module VagrantShellCommander
2
- # Action for shell command hooking
3
- class Action
4
- # Constructor
5
- #
6
- # @param app [Action] Next middleware to call
7
- # @param env [Hash] Action environment
8
- # @return nil
9
- #
10
- def initialize(app, env)
11
- @app = app
12
- @machine = env[:machine]
13
- end
1
+ module VagrantPlugins
2
+ module ShellCommander
3
+ # Action for shell command hooking
4
+ class Action
5
+ include Vagrant::Action::Builtin
14
6
 
15
- # Call method of this middleware
16
- #
17
- # @param env [Hash] Action environment
18
- # @return nil
19
- #
20
- def call(env)
21
- @app.call(env)
22
- @machine.action(:ssh_run,
23
- ssh_run_command: env[:global_config].sh.after_share_folders)
7
+ # Constructor
8
+ #
9
+ # @param app [Action] Next middleware to call
10
+ # @param env [Hash] Action environment
11
+ # @return nil
12
+ #
13
+ def initialize(app, env)
14
+ @app = app
15
+ @machine = env[:machine]
16
+ end
17
+
18
+ # Call method of this middleware
19
+ #
20
+ # @param env [Hash] Action environment
21
+ # @return nil
22
+ #
23
+ def call(env)
24
+ @app.call(env)
25
+ unless env[:global_config].sh.after_share_folders.nil?
26
+ @machine.action(:ssh_run,
27
+ ssh_run_command: env[:global_config].sh.after_share_folders,
28
+ ssh_opts: {extra_args: []})
29
+ end
30
+ end
24
31
  end
25
32
  end
26
33
  end
@@ -1,58 +1,61 @@
1
- module VagrantShellCommander
2
- # Main plugin command
3
- class Command < Vagrant.plugin("2", "command")
4
- attr_accessor :env
5
-
6
- # Main entry point of this command
7
- #
8
- def execute
9
- cli_options = OptionManager.new.execute
10
- argv = parse_options(cli_options[:parser])
1
+ module VagrantPlugins
2
+ module ShellCommander
3
+ # Main plugin command
4
+ class Command < Vagrant.plugin("2", "command")
5
+ attr_accessor :env
11
6
 
12
- return unless argv
13
-
14
- if [nil, ''].include? cli_options[:values][:cmd]
7
+ # Main entry point of this command
8
+ #
9
+ def execute
10
+ cli_options = OptionManager.new.execute
11
+ argv = parse_options(cli_options[:parser])
12
+
13
+ return unless argv
14
+
15
+ if [nil, ''].include? cli_options[:values][:cmd]
15
16
  env.ui.info cli_options[:parser]
16
- else
17
- with_target_vms(argv) do |machine|
18
- manage_machine(machine, cli_options)
17
+ else
18
+ with_target_vms(argv) do |machine|
19
+ manage_machine(machine, cli_options)
20
+ end
19
21
  end
22
+ 0
20
23
  end
21
- 0
22
- end
23
-
24
- private
25
-
26
- # Executes actions for a given machine
27
- #
28
- # @param [Vagrant::Machine] subject vm
29
- # @param [Hash] Parser (:parser key) and parsed options (:values key)
30
- # @return nil
31
- #
32
- def manage_machine(machine, cli_options)
33
- if machine.state.id != :running
34
- env.ui.warn("Machine #{machine.name} is not running.")
35
- return
24
+
25
+ private
26
+
27
+ # Executes actions for a given machine
28
+ #
29
+ # @param [Vagrant::Machine] subject vm
30
+ # @param [Hash] Parser (:parser key) and parsed options (:values key)
31
+ # @return nil
32
+ #
33
+ def manage_machine(machine, cli_options)
34
+ if machine.state.id != :running
35
+ env.ui.warn("Machine #{machine.name} is not running.")
36
+ return
37
+ end
38
+
39
+ env.ui.success("#{machine.name}::")
40
+ machine.action(:ssh_run,
41
+ ssh_run_command: add_options_to_command(cli_options[:values][:cmd],
42
+ cli_options[:values][:dir],
43
+ cli_options[:values][:user]),
44
+ ssh_opts: {extra_args: []})
36
45
  end
37
46
 
38
- env.ui.success("#{machine.name}::")
39
- machine.action(:ssh_run,
40
- ssh_run_command: add_options_to_command(cli_options[:values][:cmd],
41
- cli_options[:values][:dir],
42
- cli_options[:values][:user]))
43
- end
44
-
45
- # Adds the options to the given command
46
- #
47
- # @param cmd [String] Shell command
48
- # @param cwd [String] Optional working directory
49
- # @param user [String] Optional executing user
50
- # @return [String] Command with directory change if cwd is present and optional executing user
51
- #
52
- def add_options_to_command(cmd, cwd=nil, user=nil)
53
- cmd = "cd #{cwd} && #{cmd}" if cwd
54
- cmd = "sudo su - #{user} -c \"#{cmd}\"" if user
55
- cmd
47
+ # Adds the options to the given command
48
+ #
49
+ # @param cmd [String] Shell command
50
+ # @param cwd [String] Optional working directory
51
+ # @param user [String] Optional executing user
52
+ # @return [String] Command with directory change if cwd is present and optional executing user
53
+ #
54
+ def add_options_to_command(cmd, cwd=nil, user=nil)
55
+ cmd = "cd #{cwd} && #{cmd}" if cwd
56
+ cmd = "sudo su - #{user} -c \"#{cmd}\"" if user
57
+ cmd
58
+ end
56
59
  end
57
60
  end
58
61
  end
@@ -1,19 +1,21 @@
1
- module VagrantShellCommander
2
- # Configuration options
3
- class Config < Vagrant.plugin("2", "config")
4
- attr_accessor :after_share_folders
5
-
6
- # Initialize override, setting config options default values
7
- # for merging
8
- def initialize
9
- super
10
-
11
- @after_share_folders = UNSET_VALUE
12
- end
13
-
14
- # finalize! override, unseting config options
15
- def finalize!
16
- @after_share_folders = nil if @after_share_folders == UNSET_VALUE
1
+ module VagrantPlugins
2
+ module ShellCommander
3
+ # Configuration options
4
+ class Config < Vagrant.plugin("2", "config")
5
+ attr_accessor :after_share_folders
6
+
7
+ # Initialize override, setting config options default values
8
+ # for merging
9
+ def initialize
10
+ super
11
+
12
+ @after_share_folders = UNSET_VALUE
13
+ end
14
+
15
+ # finalize! override, unseting config options
16
+ def finalize!
17
+ @after_share_folders = nil if @after_share_folders == UNSET_VALUE
18
+ end
17
19
  end
18
20
  end
19
21
  end
@@ -1,36 +1,37 @@
1
- module VagrantShellCommander
2
- # Option parser
3
- #
4
- class OptionManager
5
- # Main parsing method
6
- # @return [Hash] The keys are :parser for the object returned by
7
- # OptionParser and :values for the actual option values
1
+ module VagrantPlugins
2
+ module ShellCommander
3
+ # Option parser
8
4
  #
9
- def execute
10
- options = {}
11
- block = lambda do |parser|
12
- parser.banner = "Usage: vagrant sh -c 'COMMAND' -d [DIR] [MACHINE]"
13
-
14
- parser.separator ''
15
-
16
- parser.on('-d [DIR]', '--directory [DIR]',
17
- 'Directory to execute the command') do |dir|
18
- options[:dir] = dir
19
- end
20
-
21
- parser.on('-u [USER]', '--user [USER]',
22
- 'User to execute the command') do |user|
23
- options[:user] = user
5
+ class OptionManager
6
+ # Main parsing method
7
+ # @return [Hash] The keys are :parser for the object returned by
8
+ # OptionParser and :values for the actual option values
9
+ #
10
+ def execute
11
+ options = {}
12
+ block = lambda do |parser|
13
+ parser.banner = "Usage: vagrant sh -c 'COMMAND' -d [DIR] [MACHINE]"
14
+
15
+ parser.separator ''
16
+
17
+ parser.on('-d [DIR]', '--directory [DIR]',
18
+ 'Directory to execute the command') do |dir|
19
+ options[:dir] = dir
20
+ end
21
+
22
+ parser.on('-u [USER]', '--user [USER]',
23
+ 'User to execute the command') do |user|
24
+ options[:user] = user
25
+ end
26
+
27
+ parser.on("-c 'COMMAND'", "--command 'COMMAND'",
28
+ 'Command to execute, quotes required for multiword') do |cmd|
29
+ options[:cmd] = cmd
30
+ end
24
31
  end
25
32
 
26
- parser.on("-c 'COMMAND'", "--command 'COMMAND'",
27
- 'Command to execute, quotes required for multiword') do |cmd|
28
- options[:cmd] = cmd
29
- end
33
+ {parser: OptionParser.new(&block), values: options}
30
34
  end
31
-
32
- {parser: OptionParser.new(&block), values: options}
33
35
  end
34
36
  end
35
37
  end
36
-
@@ -1,20 +1,22 @@
1
- module VagrantShellCommander
2
- # Plugin definition
3
- #
4
- class Plugin < Vagrant.plugin("2")
5
- name 'vagrant shell commander'
6
-
7
- command 'sh' do
8
- Command
9
- end
10
-
11
- config 'sh' do
12
- Config
13
- end
14
-
15
- %w[up reload].each do |event|
16
- action_hook("sh_hook_#{event}".to_sym, "machine_action_#{event}".to_sym) do |hook|
17
- hook.append(VagrantShellCommander::Action)
1
+ module VagrantPlugins
2
+ module ShellCommander
3
+ # Plugin definition
4
+ #
5
+ class Plugin < Vagrant.plugin("2")
6
+ name 'vagrant shell commander'
7
+
8
+ command 'sh' do
9
+ Command
10
+ end
11
+
12
+ config 'sh' do
13
+ Config
14
+ end
15
+
16
+ %w[up reload].each do |event|
17
+ action_hook("sh_hook_#{event}".to_sym, "machine_action_#{event}".to_sym) do |hook|
18
+ hook.append(Action)
19
+ end
18
20
  end
19
21
  end
20
22
  end
@@ -1,3 +1,5 @@
1
- module VagrantShellCommander
2
- VERSION = "0.2.0"
1
+ module VagrantPlugins
2
+ module ShellCommander
3
+ VERSION = "0.3.0"
4
+ end
3
5
  end
data/spec/action_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe VagrantShellCommander::Action do
3
+ describe VagrantPlugins::ShellCommander::Action do
4
4
  let(:app) {double(call: true)}
5
5
  let(:machine) {double(action: true)}
6
6
  let(:env) {double(:[] => machine)}
@@ -11,18 +11,30 @@ describe VagrantShellCommander::Action do
11
11
  let(:subject) {described_class.new(app, env)}
12
12
 
13
13
  describe "#call" do
14
- after(:each) do
15
- subject.call(action_env)
16
- end
17
-
18
14
  it "should call the next middleware" do
19
15
  expect(app).to receive(:call).with(action_env)
16
+
17
+ subject.call(action_env)
20
18
  end
21
19
 
22
- it "should call SSHRun action of the current machine with the after_boot option as command" do
23
- allow(env).to receive(:[]).with(:machine).and_return(machine)
20
+ describe "SSHRun call" do
21
+ it "should call SSHRun action of the current machine with the after_boot option as command" do
22
+ allow(env).to receive(:[]).with(:machine).and_return(machine)
23
+
24
+ expect(machine).to receive(:action).with(:ssh_run, ssh_run_command: cmd, ssh_opts: {:extra_args=>[]})
25
+
26
+ subject.call(action_env)
27
+ end
24
28
 
25
- expect(machine).to receive(:action).with(:ssh_run, ssh_run_command: cmd)
29
+ it "should not call SSHRun action if after_boot option is nil" do
30
+ sh = double(after_share_folders: nil)
31
+ global_config = double(sh: sh)
32
+ action_env = {global_config: global_config}
33
+
34
+ expect(machine).not_to receive(:action)
35
+
36
+ subject.call(action_env)
37
+ end
26
38
  end
27
39
  end
28
40
  end
data/spec/command_spec.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe VagrantShellCommander::Command do
3
+ describe VagrantPlugins::ShellCommander::Command do
4
4
  let(:subject) {described_class.new('2', 'command')}
5
5
  let(:argv) {double}
6
6
  let(:opts) {{parser: 'parser', values: {cmd: 'cmd'}}}
7
7
 
8
8
  before(:each) do
9
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
9
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
10
10
  and_return(opts)
11
11
 
12
12
  subject.stub(:with_target_vms)
@@ -72,7 +72,7 @@ describe VagrantShellCommander::Command do
72
72
  let(:communicate) {double(execute: true)}
73
73
 
74
74
  before(:each) do
75
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
75
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
76
76
  and_return(parser: 'parser', values: {cmd: cmd})
77
77
 
78
78
  machine.stub_chain(:state, :id).and_return(:running)
@@ -81,7 +81,7 @@ describe VagrantShellCommander::Command do
81
81
  end
82
82
 
83
83
  it 'executes the given command' do
84
- expect(machine).to receive(:action).with(:ssh_run, ssh_run_command: cmd)
84
+ expect(machine).to receive(:action).with(:ssh_run, ssh_run_command: cmd, ssh_opts: {:extra_args=>[]})
85
85
  end
86
86
 
87
87
  it 'shows the machine name' do
@@ -89,27 +89,30 @@ describe VagrantShellCommander::Command do
89
89
  end
90
90
 
91
91
  it 'executes the command in the given dir' do
92
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
92
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
93
93
  and_return(parser: 'parser', values: {cmd: cmd, dir: dir})
94
94
 
95
95
  expect(machine).to receive(:action).with(:ssh_run,
96
- ssh_run_command: "cd #{dir} && #{cmd}")
96
+ ssh_run_command: "cd #{dir} && #{cmd}",
97
+ ssh_opts: {:extra_args=>[]})
97
98
  end
98
99
 
99
100
  it 'executes the command for the given user' do
100
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
101
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
101
102
  and_return(parser: 'parser', values: {cmd: cmd, user: user})
102
103
 
103
104
  expect(machine).to receive(:action).with(:ssh_run,
104
- ssh_run_command: "sudo su - #{user} -c \"#{cmd}\"")
105
+ ssh_run_command: "sudo su - #{user} -c \"#{cmd}\"",
106
+ ssh_opts: {:extra_args=>[]})
105
107
  end
106
108
 
107
109
  it 'executes the command for the given user and the given dir' do
108
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
110
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
109
111
  and_return(parser: 'parser', values: {cmd: cmd, user: user, dir: dir})
110
112
 
111
113
  expect(machine).to receive(:action).with(:ssh_run,
112
- ssh_run_command: "sudo su - #{user} -c \"cd #{dir} && #{cmd}\"")
114
+ ssh_run_command: "sudo su - #{user} -c \"cd #{dir} && #{cmd}\"",
115
+ ssh_opts: {:extra_args=>[]})
113
116
  end
114
117
 
115
118
  describe 'shows help' do
@@ -121,12 +124,12 @@ describe VagrantShellCommander::Command do
121
124
  end
122
125
 
123
126
  it 'an empty command' do
124
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
127
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
125
128
  and_return(parser: parser, values: {cmd: '', dir: dir})
126
129
  end
127
130
 
128
131
  it 'non present command' do
129
- VagrantShellCommander::OptionManager.stub_chain(:new, :execute).
132
+ VagrantPlugins::ShellCommander::OptionManager.stub_chain(:new, :execute).
130
133
  and_return(parser: parser, values: {user: user})
131
134
  end
132
135
  end
data/spec/config_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe VagrantShellCommander::Config do
3
+ describe VagrantPlugins::ShellCommander::Config do
4
4
 
5
5
  let(:subject) {described_class.new}
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe VagrantShellCommander::OptionManager do
3
+ describe VagrantPlugins::ShellCommander::OptionManager do
4
4
  let(:subject) {described_class.new}
5
5
  let(:argv) {double()}
6
6
 
data/spec/plugin_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe VagrantShellCommander::Plugin do
3
+ describe VagrantPlugins::ShellCommander::Plugin do
4
4
  it 'should have a name' do
5
5
  expect(described_class.name).not_to be_nil
6
6
  end
@@ -8,12 +8,12 @@ describe VagrantShellCommander::Plugin do
8
8
  it "should define a command of type Command" do
9
9
  default_command = described_class.command.
10
10
  to_hash[:"sh"]
11
- expect(default_command).to be(VagrantShellCommander::Command)
11
+ expect(default_command).to be(VagrantPlugins::ShellCommander::Command)
12
12
  end
13
13
 
14
14
  it "should define a config of type Config" do
15
15
  default_config = described_class.components.configs[:top].to_hash[:"sh"]
16
- expect(default_config).to be(VagrantShellCommander::Config)
16
+ expect(default_config).to be(VagrantPlugins::ShellCommander::Config)
17
17
  end
18
18
 
19
19
  context 'action hooks' do
@@ -22,14 +22,14 @@ describe VagrantShellCommander::Plugin do
22
22
  it "should define an action hook for machine_action_up" do
23
23
  hook_proc = described_class.components.action_hooks[:machine_action_up][0]
24
24
  hook = double
25
- expect(hook).to receive(:append).with(VagrantShellCommander::Action)
25
+ expect(hook).to receive(:append).with(VagrantPlugins::ShellCommander::Action)
26
26
  hook_proc.call(hook)
27
27
  end
28
28
 
29
29
  it "should define an action hook for machine_action_reload" do
30
30
  hook_proc = described_class.components.action_hooks[:machine_action_reload][0]
31
31
  hook = double
32
- expect(hook).to receive(:append).with(VagrantShellCommander::Action)
32
+ expect(hook).to receive(:append).with(VagrantPlugins::ShellCommander::Action)
33
33
  hook_proc.call(hook)
34
34
  end
35
35
 
data/spec/spec_helper.rb CHANGED
@@ -3,13 +3,6 @@ SimpleCov.start
3
3
 
4
4
  require 'vagrant'
5
5
 
6
- # This file was generated by the `rspec --init` command. Conventionally, all
7
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
8
- # Require this file using `require "spec_helper"` to ensure that it is only
9
- # loaded once.
10
- #
11
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
12
-
13
6
  Dir['lib/**/*.rb'].each {|f| require File.expand_path(f)}
14
7
 
15
8
  RSpec.configure do |config|
@@ -5,7 +5,7 @@ require 'vagrant-shell-commander/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "vagrant-shell-commander"
8
- spec.version = VagrantShellCommander::VERSION
8
+ spec.version = VagrantPlugins::ShellCommander::VERSION
9
9
  spec.authors = ["Federico Gimenez Nieto"]
10
10
  spec.email = ["federico.gimenez@gmail.com"]
11
11
  spec.description = %q{Vagrant plugin for executing shell commands on guests machines and hooking them in the boot process}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-shell-commander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-16 00:00:00.000000000 Z
12
+ date: 2014-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -170,15 +170,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
170
  - - ! '>='
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0'
173
+ segments:
174
+ - 0
175
+ hash: -2972945200673106497
173
176
  required_rubygems_version: !ruby/object:Gem::Requirement
174
177
  none: false
175
178
  requirements:
176
179
  - - ! '>='
177
180
  - !ruby/object:Gem::Version
178
181
  version: '0'
182
+ segments:
183
+ - 0
184
+ hash: -2972945200673106497
179
185
  requirements: []
180
186
  rubyforge_project:
181
- rubygems_version: 1.8.25
187
+ rubygems_version: 1.8.24
182
188
  signing_key:
183
189
  specification_version: 3
184
190
  summary: Some variations to shell command execution on guest(s)