Merge pull request #1087 from nwjsmith/master

Allow `file://` URIs from `config.box.url`
This commit is contained in:
Mitchell Hashimoto 2012-09-09 20:28:19 -07:00
commit e0e2cc1974
4 changed files with 12 additions and 2 deletions

View File

@ -1,4 +1,5 @@
require 'fileutils'
require 'uri'
module Vagrant
module Downloaders
@ -6,7 +7,8 @@ module Vagrant
# simply does a file copy.
class File < Base
def self.match?(uri)
::File.file?(::File.expand_path(uri))
extracted = URI.extract(uri, "file")
(extracted && extracted.include?(uri)) || ::File.file?(::File.expand_path(uri))
end
def download!(source_url, destination_file)

View File

@ -10,7 +10,7 @@ module Vagrant
class HTTP < Base
def self.match?(uri)
# URI.parse barfs on '<drive letter>:\\files \on\ windows'
extracted = URI.extract(uri).first
extracted = URI.extract(uri, ['http', 'https']).first
extracted && extracted.include?(uri)
end

View File

@ -37,6 +37,10 @@ describe Vagrant::Downloaders::File do
ENV["HOME"] = old_home
end
end
it "should match file:// URIs" do
described_class.match?("file://#{__FILE__}").should be
end
end
describe "downloading" do

View File

@ -11,6 +11,10 @@ describe Vagrant::Downloaders::HTTP do
described_class.match?("http://foo:bar@google.com/foo.box").should be
described_class.match?("http://google.com:8500/foo.box").should be
end
it "should not match file:// URIs" do
described_class.match?("file://#{__FILE__}").should_not be
end
end
describe "downloading" do