vagrant-exec 0.4.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3a198b905f07055f13866e6362600566d379f33
4
- data.tar.gz: 804b8f85d3c87f30ca0e82e53e3c2d60d91e023d
3
+ metadata.gz: c2473ab163ba85fb8cc4d9e802771390a95d977f
4
+ data.tar.gz: 4af5e4619102413eaf5ef543f6f848cc991be591
5
5
  SHA512:
6
- metadata.gz: 0e6fe2bc7f19ecd536ab49942acbb7436ccebb674767e8e45aa02ec4f5fd9e2d1f37e35d12bd9075c4c4ef0cbe184109e34a7ccfde28ab04c9383acea8004ea4
7
- data.tar.gz: e2dc1c0bd0f76c223fcb1b8af329b647d2db88d7828210d720c1225b6971ee500fe43fb45208cbc9b48aff7124553303c4ee6071f403653766c4a36eddcc5e45
6
+ metadata.gz: 886d5a874793ed7a27eadf7830095e12e21ac6f241c63c7ce77d51f476ddbc266e1dbcc0748ae6d680bc8477557ac40b62e286b52965bc831bda5c7710bfcafc
7
+ data.tar.gz: 40e06e6cdc5ed0c7a09d6ab93e35b8da76dc23ad6d6cfd6098ffaa64ef2c6108872f708d325c7c348dc25a87a07880587786bf0005b2245dda5faca37b2ed00b
data/Gemfile CHANGED
@@ -1,10 +1,12 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gemspec
4
-
5
3
  group :development do
6
4
  # We depend on Vagrant for development, but we don't add it as a
7
5
  # gem dependency because we expect to be installed within the
8
6
  # Vagrant environment itself using `vagrant plugin`.
9
7
  gem 'vagrant', git: 'git://github.com/mitchellh/vagrant.git'
10
8
  end
9
+
10
+ group :plugins do
11
+ gemspec
12
+ end
data/README.md CHANGED
@@ -59,7 +59,7 @@ Vagrant.configure('2') do |config|
59
59
  # ➜ vagrant exec env
60
60
  # # is the same as
61
61
  # ➜ vagrant ssh -c "cd /etc && env"
62
- config.exec.commands '*', directory: '/etc'
62
+ config.exec.commands 'env', directory: '/etc'
63
63
  end
64
64
  ```
65
65
 
@@ -122,6 +122,8 @@ After you're done, remove Vagrant box.
122
122
  ➜ bundle exec rake features:cleanup
123
123
  ```
124
124
 
125
+ To show stduot, add `@announce-stdout` tag to scenario/feature.
126
+
125
127
  Known issues
126
128
  -----------------------------
127
129
 
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ namespace :features do
9
9
  end
10
10
 
11
11
  Cucumber::Rake::Task.new(:run) do |t|
12
- t.cucumber_opts = %w(--require feature --format pretty --format html --out results.html)
12
+ t.cucumber_opts = %w(--format pretty)
13
13
  end
14
14
 
15
15
  desc 'Removes testing vagrant box.'
@@ -0,0 +1 @@
1
+ default: --require features --format html --out results.html --format pretty
@@ -3,6 +3,6 @@ Then(/^SHH subprocess should execute command "(.+)"$/) do |command|
3
3
  ssh += %w(-o DSAAuthentication=yes -o LogLevel=FATAL)
4
4
  ssh += %w(-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null)
5
5
  ssh += %W(-o IdentitiesOnly=yes -i #{Dir.home}/.vagrant.d/insecure_private_key)
6
- ssh += ['-q', '-t', "bash -l -c '#{command.delete('"')}'"]
6
+ ssh += ['-q', '-t', "bash -l -c '#{command.delete("''")}'"]
7
7
  assert_partial_output("Executing SSH in subprocess: #{ssh}", all_output)
8
8
  end
@@ -8,16 +8,13 @@ Feature: vagrant-exec
8
8
  Background:
9
9
  Given I write to "Vagrantfile" with:
10
10
  """
11
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
12
- require 'vagrant-exec'
13
-
14
11
  Vagrant.configure('2') do |config|
15
12
  config.vm.box = 'vagrant_exec'
16
13
  end
17
14
  """
15
+ And I run `bundle exec vagrant up`
18
16
 
19
17
  Scenario Outline: shows help correctly
20
- Given I run `bundle exec vagrant up`
21
18
  When I run `bundle exec vagrant exec <args>`
22
19
  Then the output should contain "Usage: vagrant exec [options] <command>"
23
20
  Examples:
@@ -29,13 +26,12 @@ Feature: vagrant-exec
29
26
  | --help pwd -h |
30
27
 
31
28
  Scenario Outline: passes command arguments correctly
32
- Given I run `bundle exec vagrant up`
33
- When I run `bundle exec vagrant exec <cmd>`
34
- Then SHH subprocess should execute command "cd /vagrant && <cmd>"
29
+ When I run `bundle exec vagrant exec <command>`
30
+ Then SHH subprocess should execute command "cd /vagrant && <command>"
35
31
  Examples:
36
- | cmd |
37
- | cwd . |
38
- | cwd ~ |
39
- | cwd -h |
40
- | cwd --blah |
41
- | "cwd -h blah -v blah" |
32
+ | command |
33
+ | pwd . |
34
+ | pwd ~ |
35
+ | pwd -h |
36
+ | pwd --blah |
37
+ | 'pwd -h blah -v blah' |
@@ -8,9 +8,6 @@ Feature: vagrant-exec directory
8
8
  Scenario: uses /vagrant as default directory
9
9
  Given I write to "Vagrantfile" with:
10
10
  """
11
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
12
- require 'vagrant-exec'
13
-
14
11
  Vagrant.configure('2') do |config|
15
12
  config.vm.box = 'vagrant_exec'
16
13
  end
@@ -23,9 +20,6 @@ Feature: vagrant-exec directory
23
20
  Scenario: can use custom directory for all commands
24
21
  Given I write to "Vagrantfile" with:
25
22
  """
26
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
27
- require 'vagrant-exec'
28
-
29
23
  Vagrant.configure('2') do |config|
30
24
  config.vm.box = 'vagrant_exec'
31
25
  config.exec.commands '*', directory: '/tmp'
@@ -39,9 +33,6 @@ Feature: vagrant-exec directory
39
33
  Scenario: can use custom directory for specific commands
40
34
  Given I write to "Vagrantfile" with:
41
35
  """
42
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
43
- require 'vagrant-exec'
44
-
45
36
  Vagrant.configure('2') do |config|
46
37
  config.vm.box = 'vagrant_exec'
47
38
  config.exec.commands %w(pwd echo), directory: '/tmp'
@@ -8,9 +8,6 @@ Feature: vagrant-exec environment variables
8
8
  Scenario: can export environment variables for all commands
9
9
  Given I write to "Vagrantfile" with:
10
10
  """
11
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
12
- require 'vagrant-exec'
13
-
14
11
  Vagrant.configure('2') do |config|
15
12
  config.vm.box = 'vagrant_exec'
16
13
  config.exec.commands '*', env: { 'TEST1' => true, 'TEST2' => false }
@@ -24,9 +21,6 @@ Feature: vagrant-exec environment variables
24
21
  Scenario: can export environment variables for specific commands
25
22
  Given I write to "Vagrantfile" with:
26
23
  """
27
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
28
- require 'vagrant-exec'
29
-
30
24
  Vagrant.configure('2') do |config|
31
25
  config.vm.box = 'vagrant_exec'
32
26
  config.exec.commands 'cmd', env: { 'TEST1' => 'yo' }
@@ -46,9 +40,6 @@ Feature: vagrant-exec environment variables
46
40
  Scenario: can combine environment variables
47
41
  Given I write to "Vagrantfile" with:
48
42
  """
49
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
50
- require 'vagrant-exec'
51
-
52
43
  Vagrant.configure('2') do |config|
53
44
  config.vm.box = 'vagrant_exec'
54
45
  config.exec.commands '*', env: { 'TEST1' => true }
@@ -63,3 +54,15 @@ Feature: vagrant-exec environment variables
63
54
  Then SHH subprocess should execute command "cd /vagrant && export TEST1=true && export TEST3=false && echo 1"
64
55
  When I run `bundle exec vagrant exec env`
65
56
  Then SHH subprocess should execute command "cd /vagrant && export TEST1=true && env"
57
+
58
+ Scenario: wraps values with spaces to quotes
59
+ Given I write to "Vagrantfile" with:
60
+ """
61
+ Vagrant.configure('2') do |config|
62
+ config.vm.box = 'vagrant_exec'
63
+ config.exec.commands 'pwd', env: { 'TEST' => 'one two' }
64
+ end
65
+ """
66
+ And I run `bundle exec vagrant up`
67
+ When I run `bundle exec vagrant exec pwd`
68
+ Then SHH subprocess should execute command "cd /vagrant && export TEST="one two" && pwd"
@@ -8,9 +8,6 @@ Feature: vagrant-exec prepend
8
8
  Scenario: can prepend all commands
9
9
  Given I write to "Vagrantfile" with:
10
10
  """
11
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
12
- require 'vagrant-exec'
13
-
14
11
  Vagrant.configure('2') do |config|
15
12
  config.vm.box = 'vagrant_exec'
16
13
  config.exec.commands '*', prepend: 'echo vagrant-exec &&'
@@ -24,9 +21,6 @@ Feature: vagrant-exec prepend
24
21
  Scenario: can prepend specific commands
25
22
  Given I write to "Vagrantfile" with:
26
23
  """
27
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
28
- require 'vagrant-exec'
29
-
30
24
  Vagrant.configure('2') do |config|
31
25
  config.vm.box = 'vagrant_exec'
32
26
  config.exec.commands 'cmd', prepend: 'echo vagrant-exec1 &&'
@@ -46,9 +40,6 @@ Feature: vagrant-exec prepend
46
40
  Scenario: can combine prepended
47
41
  Given I write to "Vagrantfile" with:
48
42
  """
49
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
50
- require 'vagrant-exec'
51
-
52
43
  Vagrant.configure('2') do |config|
53
44
  config.vm.box = 'vagrant_exec'
54
45
  config.exec.commands '*', prepend: 'echo vagrant-exec1 &&'
@@ -64,3 +55,15 @@ Feature: vagrant-exec prepend
64
55
  When I run `bundle exec vagrant exec env`
65
56
  Then SHH subprocess should execute command "cd /vagrant && echo vagrant-exec1 && env"
66
57
 
58
+ Scenario: adds prepend only in the end
59
+ Given I write to "Vagrantfile" with:
60
+ """
61
+ Vagrant.configure('2') do |config|
62
+ config.vm.box = 'vagrant_exec'
63
+ config.exec.commands 'pwd', prepend: 'bundle exec'
64
+ config.exec.commands 'pwd', env: { 'TEST' => true }
65
+ end
66
+ """
67
+ And I run `bundle exec vagrant up`
68
+ When I run `bundle exec vagrant exec pwd`
69
+ Then SHH subprocess should execute command "cd /vagrant && export TEST=true && bundle exec pwd"
@@ -7,9 +7,6 @@ Feature: vagrant-exec validations
7
7
  Background:
8
8
  Given I write to "Vagrantfile" with:
9
9
  """
10
- $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
11
- require 'vagrant-exec'
12
-
13
10
  Vagrant.configure('2') do |config|
14
11
  config.vm.box = 'vagrant_exec'
15
12
  config.exec.commands true, directory: nil, prepend: true, env: 0
@@ -15,22 +15,24 @@ module VagrantPlugins
15
15
  settings = vm.config.exec._parsed_commands
16
16
  passed_command, constructed_command = cmd.dup, ''
17
17
 
18
- # directory is applied only once
18
+ # directory is applied only once in the beginning
19
19
  settings.reverse.each do |command|
20
- cmd, opts = command[:cmd], command[:opts]
21
-
22
- if command_matches?(cmd, passed_command) && !directory_added?
23
- constructed_command << add_directory(opts[:directory])
20
+ if command_matches?(command[:cmd], passed_command) && !directory_added?
21
+ constructed_command << add_directory(command[:opts][:directory])
24
22
  end
25
23
  end
26
24
 
27
- # apply options
25
+ # apply environment variables
28
26
  settings.each do |command|
29
- cmd, opts = command[:cmd], command[:opts]
27
+ if command_matches?(command[:cmd], passed_command)
28
+ constructed_command << add_env(command[:opts][:env])
29
+ end
30
+ end
30
31
 
31
- if command_matches?(cmd, passed_command)
32
- constructed_command << add_env(opts[:env])
33
- constructed_command << add_prepend(opts[:prepend])
32
+ # apply prepend in the end
33
+ settings.each do |command|
34
+ if command_matches?(command[:cmd], passed_command)
35
+ constructed_command << add_prepend(command[:opts][:prepend])
34
36
  end
35
37
  end
36
38
 
@@ -86,6 +88,7 @@ module VagrantPlugins
86
88
  def add_env(env)
87
89
  ''.tap do |str|
88
90
  env.each do |key, value|
91
+ value = %("#{value}") if value.is_a?(String) && value.include?(' ')
89
92
  str << "export #{key}=#{value} && "
90
93
  end if env
91
94
  end
@@ -1,7 +1,7 @@
1
1
  module VagrantPlugins
2
2
  module Exec
3
3
 
4
- VERSION = '0.4.0'
4
+ VERSION = '0.4.1'
5
5
 
6
6
  end # Exec
7
7
  end # VagrantPlugins
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-exec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-02 00:00:00.000000000 Z
11
+ date: 2014-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aruba
@@ -49,6 +49,7 @@ files:
49
49
  - LICENSE.md
50
50
  - README.md
51
51
  - Rakefile
52
+ - cucumber.yml
52
53
  - features/step_definitions/steps.rb
53
54
  - features/support/env.rb
54
55
  - features/vagrant-exec.feature