aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_cmd_arguments.cpp
diff options
context:
space:
mode:
authorAlbert Ziegenhagel <albert.ziegenhagel@outlook.com>2016-09-23 09:44:30 +0200
committerAlbert Ziegenhagel <albert.ziegenhagel@outlook.com>2016-09-23 09:44:30 +0200
commit31935aa0fd142cbb4e0db1a62ba1483294b740f8 (patch)
tree41be4e9498a385ecc8796d9158bf871c07ecdbc1 /toolsrc/src/vcpkg_cmd_arguments.cpp
parent4a818b6a3e86514af27381fe16dcf311a5c28ffb (diff)
downloadvcpkg-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.cpp11
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