diff options
| author | Albert Ziegenhagel <albert.ziegenhagel@outlook.com> | 2016-09-23 09:44:30 +0200 |
|---|---|---|
| committer | Albert Ziegenhagel <albert.ziegenhagel@outlook.com> | 2016-09-23 09:44:30 +0200 |
| commit | 31935aa0fd142cbb4e0db1a62ba1483294b740f8 (patch) | |
| tree | 41be4e9498a385ecc8796d9158bf871c07ecdbc1 /toolsrc/src/vcpkg_cmd_arguments.cpp | |
| parent | 4a818b6a3e86514af27381fe16dcf311a5c28ffb (diff) | |
| download | vcpkg-31935aa0fd142cbb4e0db1a62ba1483294b740f8.tar.gz vcpkg-31935aa0fd142cbb4e0db1a62ba1483294b740f8.zip | |
Improved error reporting when user provides invalid triplets
Diffstat (limited to 'toolsrc/src/vcpkg_cmd_arguments.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg_cmd_arguments.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/toolsrc/src/vcpkg_cmd_arguments.cpp b/toolsrc/src/vcpkg_cmd_arguments.cpp index 4cfc12716..d302ee42e 100644 --- a/toolsrc/src/vcpkg_cmd_arguments.cpp +++ b/toolsrc/src/vcpkg_cmd_arguments.cpp @@ -181,7 +181,7 @@ namespace vcpkg std::vector<package_spec> vcpkg_cmd_arguments::extract_package_specs_with_unmet_dependencies(const vcpkg_paths& paths, const triplet& default_target_triplet, const StatusParagraphs& status_db) const { - std::vector<package_spec> specs = parse_all_arguments_as_package_specs(default_target_triplet); + std::vector<package_spec> specs = parse_all_arguments_as_package_specs(paths, default_target_triplet); std::unordered_set<package_spec> had_its_immediate_dependencies_added; Graphs::Graph<package_spec> graph; graph.add_vertices(specs); @@ -220,7 +220,7 @@ namespace vcpkg return graph.find_topological_sort(); } - std::vector<package_spec> vcpkg_cmd_arguments::parse_all_arguments_as_package_specs(const triplet& default_target_triplet, const char* example_text) const + std::vector<package_spec> vcpkg_cmd_arguments::parse_all_arguments_as_package_specs(const vcpkg_paths& paths, const triplet& default_target_triplet, const char* example_text) const { size_t arg_count = command_arguments.size(); if (arg_count < 1) @@ -240,6 +240,13 @@ namespace vcpkg expected<package_spec> current_spec = vcpkg::parse(command_argument, default_target_triplet); if (auto spec = current_spec.get()) { + if(!spec->target_triplet.validate(paths)) + { + System::println(System::color::error, "Error: invalid triplet %s for package %s", spec->target_triplet.value, spec->name); + TrackProperty("error", "invalid triplet: " + spec->target_triplet.value); + help_topic_valid_triplet(paths); + exit(EXIT_FAILURE); + } specs.push_back(std::move(*spec)); } else |
