aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-03-19 15:45:35 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-03-20 19:14:20 -0700
commitd80dd5cbc777ce765c2d6b78d7c485fdf05f284b (patch)
treefba5f9d1b871ec9104d9ba12db4ea183b061c9ee /toolsrc/src
parentab7985a34b8a4de59dc9a6e6c4c40fbb564797b8 (diff)
downloadvcpkg-d80dd5cbc777ce765c2d6b78d7c485fdf05f284b.tar.gz
vcpkg-d80dd5cbc777ce765c2d6b78d7c485fdf05f284b.zip
[vcpkg] Handle failure to store archive
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg/base/files.cpp4
-rw-r--r--toolsrc/src/vcpkg/build.cpp9
2 files changed, 10 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp
index b59104a59..4e61666b7 100644
--- a/toolsrc/src/vcpkg/base/files.cpp
+++ b/toolsrc/src/vcpkg/base/files.cpp
@@ -108,6 +108,10 @@ namespace vcpkg::Files
output.close();
}
+ virtual void rename(const fs::path& oldpath, const fs::path& newpath, std::error_code& ec) override
+ {
+ fs::stdfs::rename(oldpath, newpath, ec);
+ }
virtual void rename(const fs::path& oldpath, const fs::path& newpath) override
{
fs::stdfs::rename(oldpath, newpath);
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp
index bc9eca3ba..ebded2736 100644
--- a/toolsrc/src/vcpkg/build.cpp
+++ b/toolsrc/src/vcpkg/build.cpp
@@ -618,9 +618,12 @@ namespace vcpkg::Build
compress_archive(paths, spec, tmp_archive_path);
fs.create_directories(archive_path.parent_path(), ec);
- fs.rename(tmp_archive_path, archive_path);
-
- System::println("Stored binary cache: %s", archive_path.u8string());
+ fs.rename(tmp_archive_path, archive_path, ec);
+ if (ec)
+ System::println(
+ System::Color::warning, "Failed to store binary cache: %s", archive_path.u8string());
+ else
+ System::println("Stored binary cache: %s", archive_path.u8string());
}
else if (result.code == BuildResult::BUILD_FAILED || result.code == BuildResult::POST_BUILD_CHECKS_FAILED)
{