vagrant-triggers 0.5.0 → 0.5.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: feda77ab141c553c1886766fd74d69ddfb0b2153
4
- data.tar.gz: 0b73b4f744e7f5c0aec0a769eaa90629076c2c98
3
+ metadata.gz: eab5f910be37b40cbc9319586e7c0c5e4f2248a0
4
+ data.tar.gz: 998cad1f949056e3632426d3df13a237f4fa8371
5
5
  SHA512:
6
- metadata.gz: 5ec60cd4c036eaedf2f64d9f5e63559d00dfc39d7a29eab6cd7e38b4de3a1d9d5acb4d0dc65d8ad02c2e5767d5c69c9ce22bacb610cf609084466edcad85a491
7
- data.tar.gz: 8d05d7c3abf88ccabc6a93b2542183a36bfdfe9d7aea0abdba3e41c2fbfc047e8a3fbab2eafc61af1fc06165cdb2fc35a37978fcdaab5307bc9a2b0e7f80f370
6
+ metadata.gz: baa61783466b63533d4c13aa9377998bb8333d25b16824e9026e188714ff508cabe44f3df713b1f80ddcecb5613c3a042f5ba546cf415383706a5cabade943ec
7
+ data.tar.gz: 9d40978b228fe256578e62b4f1f8935f59f31b316c6abbba4e230ad675dfd2ea59fa523d4697ff58cd32c31a4b057bb7dce7866630214d64eb702a0fdb4c2802
data/.gitignore CHANGED
File without changes
data/.travis.yml CHANGED
@@ -7,7 +7,10 @@ before_install:
7
7
  - gem uninstall -ax bundler
8
8
  - gem install bundler -v 1.5.3
9
9
  env:
10
- - VAGRANT_VERSION=v1.7.1
10
+ global:
11
+ - SPEC_OPTS="--tag ~skip_travis"
12
+ matrix:
13
+ - VAGRANT_VERSION=v1.7.4
11
14
  matrix:
12
15
  include:
13
16
  - env: VAGRANT_VERSION=master
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.5.1 (August 3, 2015)
2
+
3
+ BUG FIXES:
4
+
5
+ - Change directory to environment root path before running host commands [(#44)](https://github.com/emyl/vagrant-triggers/issues/44)
6
+ - ```:stdout``` and ```:stderr``` options defaults to true when using provisioner [(#42)](https://github.com/emyl/vagrant-triggers/issues/42)
7
+ - Properly escape regexp in DSL [(#46)](https://github.com/emyl/vagrant-triggers/issues/46)
8
+
1
9
  ## 0.5.0 (December 29, 2014)
2
10
 
3
11
  **BEHAVIOURAL CHANGES:**
data/Gemfile CHANGED
File without changes
data/LICENSE.txt CHANGED
File without changes
data/README.md CHANGED
@@ -76,12 +76,38 @@ For additional details you can take a look to the [VagrantPlugins::Triggers::DSL
76
76
 
77
77
  Triggers won't run if ```VAGRANT_NO_TRIGGERS``` environment variable is set.
78
78
 
79
+ ### Attaching to every command
80
+
81
+ The special name `:ALL` can be used as a wildcard for every vagrant command:
82
+
83
+ ```ruby
84
+ Vagrant.configure("2") do |config|
85
+ config.trigger.before :ALL do
86
+ ...
87
+ end
88
+ end
89
+ ```
90
+
91
+ ### Blacklisting commands
92
+
93
+ Commands can be blacklisted, so that the `:ALL` wildcard has no effect on them:
94
+
95
+ ```ruby
96
+ Vagrant.configure("2") do |config|
97
+ config.trigger.blacklist :destroy
98
+ config.trigger.before :ALL do
99
+ ...
100
+ end
101
+ end
102
+ ```
103
+
104
+ Multiple commands can be blacklisted using an array.
105
+
79
106
  ## A simple example
80
107
 
81
108
  Cleanup some temporary files after machine destroy:
82
109
 
83
110
  ```ruby
84
-
85
111
  Vagrant.configure("2") do |config|
86
112
  config.trigger.after :destroy do
87
113
  run "rm -Rf tmp/*"
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -6,7 +6,10 @@ module VagrantPlugins
6
6
  attr_reader :trigger_body
7
7
 
8
8
  def initialize
9
- @options = {}
9
+ @options = {
10
+ :stderr => true,
11
+ :stdout => true
12
+ }
10
13
  end
11
14
 
12
15
  def fire(&block)
@@ -14,7 +17,7 @@ module VagrantPlugins
14
17
  end
15
18
 
16
19
  def set_options(options)
17
- @options = options
20
+ @options.merge!(options)
18
21
  end
19
22
  end
20
23
  end
File without changes
@@ -41,8 +41,10 @@ module VagrantPlugins
41
41
  Bundler.with_clean_env do
42
42
  build_environment
43
43
  @buffer.clear
44
- result = Vagrant::Util::Subprocess.execute(command[0], *command[1..-1], :notify => [:stdout, :stderr]) do |channel, data|
45
- @command_output.call(channel, data, options)
44
+ Dir.chdir(@machine.env.root_path) do
45
+ result = Vagrant::Util::Subprocess.execute(command[0], *command[1..-1], :notify => [:stdout, :stderr]) do |channel, data|
46
+ @command_output.call(channel, data, options)
47
+ end
46
48
  end
47
49
  end
48
50
  info I18n.t("vagrant_triggers.action.trigger.command_finished")
@@ -87,7 +89,7 @@ module VagrantPlugins
87
89
  # Create the new PATH removing Vagrant bin directory
88
90
  # and appending directories specified through the
89
91
  # :append_to_path option
90
- new_path = ENV["VAGRANT_INSTALLER_ENV"] ? ENV["PATH"].gsub(/#{ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]}.*?#{File::PATH_SEPARATOR}/, "") : ENV["PATH"]
92
+ new_path = ENV["VAGRANT_INSTALLER_ENV"] ? ENV["PATH"].gsub(/#{Regexp.quote(ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"])}.*?#{Regexp.quote(File::PATH_SEPARATOR)}/, "") : ENV["PATH"]
91
93
  new_path += Array(@options[:append_to_path]).map { |dir| "#{File::PATH_SEPARATOR}#{dir}" }.join
92
94
  ENV["PATH"] = new_path
93
95
  @logger.debug("PATH modified: #{ENV["PATH"]}")
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Triggers
3
- VERSION = "0.5.0"
3
+ VERSION = "0.5.1"
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
File without changes
data/spec/spec_helper.rb CHANGED
File without changes
File without changes
@@ -3,6 +3,16 @@ require "spec_helper"
3
3
  describe VagrantPlugins::Triggers::Config::Provisioner do
4
4
  let(:config) { described_class.new }
5
5
 
6
+ describe "defaults" do
7
+ it "should default :stdout option to true" do
8
+ expect(config.options[:stdout]).to be true
9
+ end
10
+
11
+ it "should default :stderr option to true" do
12
+ expect(config.options[:stderr]).to be true
13
+ end
14
+ end
15
+
6
16
  describe "fire" do
7
17
  it "should record trigger code" do
8
18
  code = Proc.new { "foo" }
@@ -13,9 +23,14 @@ describe VagrantPlugins::Triggers::Config::Provisioner do
13
23
 
14
24
  describe "set_options" do
15
25
  it "should set options" do
16
- options = { :foo => "bar", :baz => "bat" }
26
+ options = { :foo => "bar" }
17
27
  config.set_options(options)
18
- expect(config.options).to eq(options)
28
+ expect(config.options[:foo]).to eq("bar")
29
+ end
30
+
31
+ it "should override defaults" do
32
+ config.set_options(:stdout => false)
33
+ expect(config.options[:stdout]).to be false
19
34
  end
20
35
  end
21
36
  end
File without changes
@@ -5,7 +5,8 @@ describe VagrantPlugins::Triggers::DSL do
5
5
  let(:result) { double("result", :exit_code => 0, :stderr => stderr) }
6
6
  let(:stderr) { double("stderr") }
7
7
 
8
- let(:machine) { double("machine", :ui => ui) }
8
+ let(:machine) { double("machine", :env => env, :ui => ui) }
9
+ let(:env) { double("env", :root_path => ENV["PWD"]) }
9
10
  let(:ui) { double("ui", :info => info) }
10
11
  let(:info) { double("info") }
11
12
 
@@ -72,6 +73,15 @@ describe VagrantPlugins::Triggers::DSL do
72
73
  @options = { :notify => [:stdout, :stderr] }
73
74
  end
74
75
 
76
+ it "should change directory to environment root path" do
77
+ machine.stub_chain(:env, :root_path).and_return("/")
78
+ Vagrant::Util::Subprocess.should_receive(:execute) do |command|
79
+ expect(Dir.pwd).to eq("/")
80
+ result
81
+ end
82
+ @dsl.run(@command)
83
+ end
84
+
75
85
  it "should raise an error if executed command exits with non-zero code" do
76
86
  result.stub(:exit_code => 1)
77
87
  expect { @dsl.run(@command) }.to raise_error(VagrantPlugins::Triggers::Errors::CommandFailed)
@@ -162,7 +172,7 @@ describe VagrantPlugins::Triggers::DSL do
162
172
  File.open("#{ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]}/bin/#{@command}", "w+", 0700) { |file| }
163
173
  end
164
174
 
165
- it "should raise a CommandUnavailable error" do
175
+ it "should raise a CommandUnavailable error", :skip_travis => true do
166
176
  expect { @dsl.run(@command) }.to raise_error(VagrantPlugins::Triggers::Errors::CommandUnavailable)
167
177
  end
168
178
 
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-triggers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emiliano Ticci
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-29 00:00:00.000000000 Z
11
+ date: 2015-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler