diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-10-18 19:20:11 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-10-18 19:20:11 -0700 |
| commit | 9964d84b53442ef4f555cfe090ed22503b90d213 (patch) | |
| tree | 112c8e00751389b6279592059c38e259bd9838c3 | |
| parent | ecdfd3c8e3a4b924bfad5b70f6557dd9f337bd1c (diff) | |
| download | vcpkg-9964d84b53442ef4f555cfe090ed22503b90d213.tar.gz vcpkg-9964d84b53442ef4f555cfe090ed22503b90d213.zip | |
Add extra checks on the return Visual Studio instances
| -rw-r--r-- | toolsrc/src/vcpkg/vcpkgpaths.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index 34c661afd..2f2dd877e 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -330,10 +330,19 @@ namespace vcpkg VCPKG_LINE_INFO, ec_data.exit_code == 0, "Could not run script to detect Visual Studio instances"); const std::vector<std::string> instances_as_strings = Strings::split(ec_data.output, "\n"); + Checks::check_exit( + VCPKG_LINE_INFO, !instances_as_strings.empty(), "Could not detect any Visual Studio instances"); + std::vector<VisualStudioInstance> output; for (const std::string& instance_as_string : instances_as_strings) { const std::vector<std::string> split = Strings::split(instance_as_string, "::"); + Checks::check_exit(VCPKG_LINE_INFO, + split.size() == 4, + "Invalid Visual Studio instance format.\n" + "Expected: PreferenceWeight::ReleaseType::Version::PathToVisualStudio\n" + "Actual : %s", + instance_as_string); output.push_back({split.at(3), split.at(2), split.at(1), split.at(0)}); } |
