Properly resolve cygwin paths in Cygwin environments [GH-1366]
This commit is contained in:
parent
57a5edbc39
commit
c8b829c4d2
|
@ -40,6 +40,8 @@ FEATURES:
|
|||
|
||||
IMPROVEMENTS / BUG FIXES:
|
||||
|
||||
- Vagrant works much better in Cygwin environments on Windows by
|
||||
properly resolving Cygwin paths. [GH-1366]
|
||||
- Improve the SSH "ready?" check by more gracefully handling timeouts. [GH-841]
|
||||
- Human friendly error if connection times out for HTTP downloads. [GH-849]
|
||||
- Detect when the VirtualBox installation is incomplete and error. [GH-846]
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require 'rbconfig'
|
||||
require 'tempfile'
|
||||
|
||||
require "vagrant/util/subprocess"
|
||||
|
||||
module Vagrant
|
||||
module Util
|
||||
# This class just contains some platform checking code.
|
||||
|
@ -48,6 +50,19 @@ module Vagrant
|
|||
!bit64?
|
||||
end
|
||||
|
||||
# This takes as input a path as a string and converts it into
|
||||
# a platform-friendly version of the path. This is most important
|
||||
# when using the path in shell environments with Cygwin.
|
||||
#
|
||||
# @param [String] path
|
||||
# @return [String]
|
||||
def platform_path(path)
|
||||
return path if !cygwin?
|
||||
|
||||
process = Subprocess.execute("cygpath", "-u", path.to_s)
|
||||
process.stdout.chomp
|
||||
end
|
||||
|
||||
# Returns a boolean noting whether the terminal supports color.
|
||||
# output.
|
||||
def terminal_supports_colors?
|
||||
|
|
|
@ -12,9 +12,6 @@ module VagrantPlugins
|
|||
|
||||
# Import the virtual machine
|
||||
ovf_file = env[:machine].box.directory.join("box.ovf").to_s
|
||||
if Vagrant::Util::Platform.cygwin?
|
||||
ovf_file = `cygpath -m '#{ovf_file}'`.chomp
|
||||
end
|
||||
env[:machine].id = env[:machine].provider.driver.import(ovf_file) do |progress|
|
||||
env[:ui].clear_line
|
||||
env[:ui].report_progress(progress, 100, false)
|
||||
|
|
|
@ -33,9 +33,6 @@ module VagrantPlugins
|
|||
if ENV.has_key?("VBOX_INSTALL_PATH")
|
||||
# Get the path.
|
||||
path = ENV["VBOX_INSTALL_PATH"]
|
||||
if Vagrant::Util::Platform.cygwin?
|
||||
path = `cygpath -u '#{path}'`.chomp
|
||||
end
|
||||
@logger.debug("VBOX_INSTALL_PATH value: #{path}")
|
||||
|
||||
# There can actually be multiple paths in here, so we need to
|
||||
|
@ -48,7 +45,7 @@ module VagrantPlugins
|
|||
# and break out
|
||||
vboxmanage = "#{path}VBoxManage.exe"
|
||||
if File.file?(vboxmanage)
|
||||
@vboxmanage_path = vboxmanage
|
||||
@vboxmanage_path = Vagrant::Util::Platform.platform_path(vboxmanage)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
require 'log4r'
|
||||
|
||||
require "vagrant/util/platform"
|
||||
|
||||
require File.expand_path("../base", __FILE__)
|
||||
|
||||
module VagrantPlugins
|
||||
|
@ -157,6 +159,8 @@ module VagrantPlugins
|
|||
end
|
||||
|
||||
def import(ovf)
|
||||
ovf = Vagrant::Util::Platform.platform_path(ovf)
|
||||
|
||||
output = ""
|
||||
total = ""
|
||||
last = 0
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
require 'log4r'
|
||||
|
||||
require "vagrant/util/platform"
|
||||
|
||||
require File.expand_path("../base", __FILE__)
|
||||
|
||||
module VagrantPlugins
|
||||
|
@ -157,6 +159,8 @@ module VagrantPlugins
|
|||
end
|
||||
|
||||
def import(ovf)
|
||||
ovf = Vagrant::Util::Platform.platform_path(ovf)
|
||||
|
||||
output = ""
|
||||
total = ""
|
||||
last = 0
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
require 'log4r'
|
||||
|
||||
require "vagrant/util/platform"
|
||||
|
||||
require File.expand_path("../base", __FILE__)
|
||||
|
||||
module VagrantPlugins
|
||||
|
@ -155,6 +157,8 @@ module VagrantPlugins
|
|||
end
|
||||
|
||||
def import(ovf)
|
||||
ovf = Vagrant::Util::Platform.platform_path(ovf)
|
||||
|
||||
output = ""
|
||||
total = ""
|
||||
last = 0
|
||||
|
|
Loading…
Reference in New Issue