diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2018-03-19 15:45:35 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-03-20 19:14:20 -0700 |
| commit | d80dd5cbc777ce765c2d6b78d7c485fdf05f284b (patch) | |
| tree | fba5f9d1b871ec9104d9ba12db4ea183b061c9ee /toolsrc/src | |
| parent | ab7985a34b8a4de59dc9a6e6c4c40fbb564797b8 (diff) | |
| download | vcpkg-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.cpp | 4 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/build.cpp | 9 |
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) { |
