vagrant-shell-commander 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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)