vagrant 0.9.2 → 0.9.3
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/CHANGELOG.md +8 -0
- data/lib/vagrant/action/vm/network.rb +2 -2
- data/lib/vagrant/command/box_add.rb +1 -0
- data/lib/vagrant/command/box_remove.rb +1 -0
- data/lib/vagrant/command/box_repackage.rb +1 -0
- data/lib/vagrant/communication/ssh.rb +4 -2
- data/lib/vagrant/driver/virtualbox_4_0.rb +2 -0
- data/lib/vagrant/driver/virtualbox_4_1.rb +2 -0
- data/lib/vagrant/errors.rb +5 -0
- data/lib/vagrant/guest/linux.rb +1 -1
- data/lib/vagrant/util/ansi_escape_code_remover.rb +35 -0
- data/lib/vagrant/version.rb +1 -1
- data/templates/locales/en.yml +5 -0
- data/test/unit/vagrant/config/base_test.rb +4 -3
- data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +17 -0
- metadata +6 -4
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## 0.9.3 (January 24, 2012)
|
2
|
+
|
3
|
+
- Proper error handling for not enough arguments to `box` commands.
|
4
|
+
- Fix issue causing crashes with bridged networking. [GH-673]
|
5
|
+
- Ignore host only network interfaces that are "down." [GH-675]
|
6
|
+
- Use "printf" instead of "echo" to determine shell expanded files paths
|
7
|
+
which is more generally POSIX compliant. [GH-676]
|
8
|
+
|
1
9
|
## 0.9.2 (January 20, 2012)
|
2
10
|
|
3
11
|
- Support shell expansions in shared folder guest paths again. [GH-656]
|
@@ -298,7 +298,7 @@ module Vagrant
|
|
298
298
|
|
299
299
|
@env[:vm].driver.read_bridged_interfaces.each do |interface|
|
300
300
|
that_netaddr = network_address(interface[:ip], interface[:netmask])
|
301
|
-
raise Errors::NetworkCollision if this_netaddr == that_netaddr
|
301
|
+
raise Errors::NetworkCollision if this_netaddr == that_netaddr && interface[:status] != "Down"
|
302
302
|
end
|
303
303
|
end
|
304
304
|
|
@@ -341,7 +341,7 @@ module Vagrant
|
|
341
341
|
chosen_bridge = bridgedifs[choice - 1][:name]
|
342
342
|
end
|
343
343
|
|
344
|
-
@logger.info("Bridging adapter #{config[:adapter]} to #{
|
344
|
+
@logger.info("Bridging adapter #{config[:adapter]} to #{chosen_bridge}")
|
345
345
|
|
346
346
|
# Given the choice we can now define the adapter we're using
|
347
347
|
return {
|
@@ -4,6 +4,7 @@ require 'log4r'
|
|
4
4
|
require 'net/ssh'
|
5
5
|
require 'net/scp'
|
6
6
|
|
7
|
+
require 'vagrant/util/ansi_escape_code_remover'
|
7
8
|
require 'vagrant/util/file_mode'
|
8
9
|
require 'vagrant/util/platform'
|
9
10
|
require 'vagrant/util/retryable'
|
@@ -12,6 +13,7 @@ module Vagrant
|
|
12
13
|
module Communication
|
13
14
|
# Provides communication with the VM via SSH.
|
14
15
|
class SSH < Base
|
16
|
+
include Util::ANSIEscapeCodeRemover
|
15
17
|
include Util::Retryable
|
16
18
|
|
17
19
|
def initialize(vm)
|
@@ -169,7 +171,7 @@ module Vagrant
|
|
169
171
|
ch2.on_data do |ch3, data|
|
170
172
|
if block_given?
|
171
173
|
# Filter out the clear screen command
|
172
|
-
data
|
174
|
+
data = remove_ansi_escape_codes(data)
|
173
175
|
@logger.debug("stdout: #{data}")
|
174
176
|
yield :stdout, data
|
175
177
|
end
|
@@ -178,7 +180,7 @@ module Vagrant
|
|
178
180
|
ch2.on_extended_data do |ch3, type, data|
|
179
181
|
if block_given?
|
180
182
|
# Filter out the clear screen command
|
181
|
-
data
|
183
|
+
data = remove_ansi_escape_codes(data)
|
182
184
|
@logger.debug("stderr: #{data}")
|
183
185
|
yield :stderr, data
|
184
186
|
end
|
data/lib/vagrant/errors.rb
CHANGED
@@ -128,6 +128,11 @@ module Vagrant
|
|
128
128
|
error_key(:failed, "vagrant.actions.box.verify")
|
129
129
|
end
|
130
130
|
|
131
|
+
class CLIInvalidUsage < VagrantError
|
132
|
+
status_code(69)
|
133
|
+
error_key(:cli_invalid_usage)
|
134
|
+
end
|
135
|
+
|
131
136
|
class CLIInvalidOptions < VagrantError
|
132
137
|
status_code(1)
|
133
138
|
error_key(:cli_invalid_options)
|
data/lib/vagrant/guest/linux.rb
CHANGED
@@ -47,7 +47,7 @@ module Vagrant
|
|
47
47
|
# else, things like '~' don't expand properly in shared folders. We have
|
48
48
|
# to `echo` here to get that path.
|
49
49
|
real_guestpath = nil
|
50
|
-
@vm.channel.execute("
|
50
|
+
@vm.channel.execute("printf #{guestpath}") do |type, data|
|
51
51
|
if type == :stdout
|
52
52
|
real_guestpath ||= ""
|
53
53
|
real_guestpath += data
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Util
|
3
|
+
module ANSIEscapeCodeRemover
|
4
|
+
# Removes ANSI escape code sequences from the text and returns
|
5
|
+
# it.
|
6
|
+
#
|
7
|
+
# This removes all the ANSI escape codes listed here along with
|
8
|
+
# the escape codes for VT100 terminals:
|
9
|
+
#
|
10
|
+
# http://ascii-table.com/ansi-escape-sequences.php
|
11
|
+
def remove_ansi_escape_codes(text)
|
12
|
+
# An array of regular expressions which match various kinds
|
13
|
+
# of escape sequences. I can't think of a better single regular
|
14
|
+
# expression or any faster way to do this.
|
15
|
+
matchers = [/\e\[\d*[ABCD]/, # Matches things like \e[4D
|
16
|
+
/\e\[(\d*;)?\d*[HF]/, # Matches \e[1;2H or \e[H
|
17
|
+
/\e\[(s|u|2J|K)/, # Matches \e[s, \e[2J, etc.
|
18
|
+
/\e\[(\d*;){0,2}\d*m/, # Matches color escapes: \e[32m
|
19
|
+
/\e\[=\d*[hl]/, # Matches \e[=24h
|
20
|
+
/\e\[\?[1-9][hl]/, # Matches \e[?2h
|
21
|
+
/\e\[20[hl]/, # Matches \e[20l]
|
22
|
+
/\e[DME78H]/, # Matches \eD, \eH, etc.
|
23
|
+
/\e\[[0-2]?[JK]/, # Matches \e[0J, \e[K, etc.
|
24
|
+
]
|
25
|
+
|
26
|
+
# Take each matcher and replace it with emptiness.
|
27
|
+
matchers.each do |matcher|
|
28
|
+
text.gsub!(matcher, "")
|
29
|
+
end
|
30
|
+
|
31
|
+
text
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/vagrant/version.rb
CHANGED
data/templates/locales/en.yml
CHANGED
@@ -30,6 +30,11 @@ en:
|
|
30
30
|
An invalid option was specified. The help for this command
|
31
31
|
is available below.
|
32
32
|
|
33
|
+
%{help}
|
34
|
+
cli_invalid_usage: |-
|
35
|
+
This command was not invoked properly. The help for this command is
|
36
|
+
available below.
|
37
|
+
|
33
38
|
%{help}
|
34
39
|
config_validation: |-
|
35
40
|
There was a problem with the configuration of Vagrant. The error message(s)
|
@@ -25,10 +25,11 @@ describe Vagrant::Config::Base do
|
|
25
25
|
|
26
26
|
it "doesn't merge values that start with a double underscore" do
|
27
27
|
bar_class = Class.new(foo_class) do
|
28
|
-
|
28
|
+
class_variable_set(:@@counter, 0)
|
29
|
+
|
29
30
|
def initialize
|
30
|
-
@__test =
|
31
|
-
|
31
|
+
@__test = self.class.send(:class_variable_get, :@@counter)
|
32
|
+
self.class.send(:class_variable_set, :@@counter, @__test + 1)
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.expand_path("../../../base", __FILE__)
|
2
|
+
|
3
|
+
require "vagrant/util/ansi_escape_code_remover"
|
4
|
+
|
5
|
+
describe Vagrant::Util::ANSIEscapeCodeRemover do
|
6
|
+
let(:klass) do
|
7
|
+
Class.new do
|
8
|
+
extend Vagrant::Util::ANSIEscapeCodeRemover
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should remove ANSI escape codes" do
|
13
|
+
klass.remove_ansi_escape_codes("\e[Hyo").should == "yo"
|
14
|
+
klass.remove_ansi_escape_codes("\e[38myo").should == "yo"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 61
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 3
|
10
|
+
version: 0.9.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mitchell Hashimoto
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-01-
|
19
|
+
date: 2012-01-24 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -410,6 +410,7 @@ files:
|
|
410
410
|
- lib/vagrant/test_helpers.rb
|
411
411
|
- lib/vagrant/ui.rb
|
412
412
|
- lib/vagrant/util.rb
|
413
|
+
- lib/vagrant/util/ansi_escape_code_remover.rb
|
413
414
|
- lib/vagrant/util/busy.rb
|
414
415
|
- lib/vagrant/util/counter.rb
|
415
416
|
- lib/vagrant/util/file_checksum.rb
|
@@ -569,6 +570,7 @@ files:
|
|
569
570
|
- test/unit/vagrant/environment_test.rb
|
570
571
|
- test/unit/vagrant/hosts_test.rb
|
571
572
|
- test/unit/vagrant/registry_test.rb
|
573
|
+
- test/unit/vagrant/util/ansi_escape_code_remover_test.rb
|
572
574
|
- test/unit/vagrant/util/file_checksum_test.rb
|
573
575
|
- test/unit/vagrant/util/hash_with_indifferent_access_test.rb
|
574
576
|
- test/unit/vagrant/util/network_ip_test.rb
|