Use box directory as temporary directory to avoid cross-device [GH-1199]
This commit is contained in:
parent
c164a5ca81
commit
7fe19d3a11
|
@ -77,6 +77,8 @@ IMPROVEMENTS / BUG FIXES:
|
||||||
while downloading a box over HTTP. [GH-1090]
|
while downloading a box over HTTP. [GH-1090]
|
||||||
- Human-friendly error is raised if there are permission issues when
|
- Human-friendly error is raised if there are permission issues when
|
||||||
using SCP to upload files. [GH-924]
|
using SCP to upload files. [GH-924]
|
||||||
|
- Box adding doesn't use `/tmp` anymore which can avoid some cross-device
|
||||||
|
copy issues. [GH-1199]
|
||||||
|
|
||||||
## 1.0.6 (December 21, 2012)
|
## 1.0.6 (December 21, 2012)
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,8 @@ module Vagrant
|
||||||
# for accessing/finding individual boxes, adding new boxes, or deleting
|
# for accessing/finding individual boxes, adding new boxes, or deleting
|
||||||
# boxes.
|
# boxes.
|
||||||
class BoxCollection
|
class BoxCollection
|
||||||
|
TEMP_PREFIX = "vagrant-box-add-temp-"
|
||||||
|
|
||||||
# The directory where the boxes in this collection are stored.
|
# The directory where the boxes in this collection are stored.
|
||||||
#
|
#
|
||||||
# A box collection matches a very specific folder structure that Vagrant
|
# A box collection matches a very specific folder structure that Vagrant
|
||||||
|
@ -85,7 +87,7 @@ module Vagrant
|
||||||
|
|
||||||
# Create a temporary directory since we're not sure at this point if
|
# Create a temporary directory since we're not sure at this point if
|
||||||
# the box we're unpackaging already exists (if no provider was given)
|
# the box we're unpackaging already exists (if no provider was given)
|
||||||
Dir.mktmpdir(["vagrant-tmp-", provider.to_s]) do |temp_dir|
|
Dir.mktmpdir(TEMP_PREFIX, directory.to_s) do |temp_dir|
|
||||||
temp_dir = Pathname.new(temp_dir)
|
temp_dir = Pathname.new(temp_dir)
|
||||||
|
|
||||||
# Extract the box into a temporary directory.
|
# Extract the box into a temporary directory.
|
||||||
|
@ -158,6 +160,10 @@ module Vagrant
|
||||||
|
|
||||||
box_name = child.basename.to_s
|
box_name = child.basename.to_s
|
||||||
|
|
||||||
|
# Ignore anything that matches the temporary prefix (crazy
|
||||||
|
# race condition might be possible)
|
||||||
|
next if box_name =~ /^#{TEMP_PREFIX}/
|
||||||
|
|
||||||
# If this is a V1 box, we still return that name, but specify
|
# If this is a V1 box, we still return that name, but specify
|
||||||
# that the box is a V1 box.
|
# that the box is a V1 box.
|
||||||
if v1_box?(child)
|
if v1_box?(child)
|
||||||
|
|
Loading…
Reference in New Issue