diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-12-05 18:03:36 -0800 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-12-05 18:03:36 -0800 |
| commit | 705c8f201273e9bdad9508903d26b21f5d76f1c3 (patch) | |
| tree | ffc2b019217948ef65d367585def0ba4282448eb /toolsrc/src | |
| parent | e7cbb50f3dd323380928f4cb4e5b9bc0945abac8 (diff) | |
| download | vcpkg-705c8f201273e9bdad9508903d26b21f5d76f1c3.tar.gz vcpkg-705c8f201273e9bdad9508903d26b21f5d76f1c3.zip | |
Improve error message when failing to parse package
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg/packagespec.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/toolsrc/src/vcpkg/packagespec.cpp b/toolsrc/src/vcpkg/packagespec.cpp index eeb9981af..17189afcf 100644 --- a/toolsrc/src/vcpkg/packagespec.cpp +++ b/toolsrc/src/vcpkg/packagespec.cpp @@ -2,6 +2,7 @@ #include <vcpkg/base/util.h> #include <vcpkg/packagespec.h> +#include <vcpkg/packagespecparseresult.h> #include <vcpkg/parse.h> using vcpkg::Parse::parse_comma_list; @@ -95,8 +96,19 @@ namespace vcpkg std::vector<PackageSpec> PackageSpec::to_package_specs(const std::vector<std::string>& ports, const Triplet& triplet) { - return Util::fmap(ports, [&](const std::string s) { - return PackageSpec::from_name_and_triplet(s, triplet).value_or_exit(VCPKG_LINE_INFO); + return Util::fmap(ports, [&](const std::string& s) -> PackageSpec { + auto maybe_spec = PackageSpec::from_name_and_triplet(s, triplet); + if (auto spec = maybe_spec.get()) + { + return std::move(*spec); + } + + const PackageSpecParseResult error_type = maybe_spec.error(); + Checks::exit_with_message(VCPKG_LINE_INFO, + "Invalid package: %s\n" + "%s", + s, + vcpkg::to_string(error_type)); }); } |
