diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2016-09-30 11:24:04 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2016-09-30 11:29:01 -0700 |
| commit | fc1e55173b23afeb46142e6d656043a4b6f4b21c (patch) | |
| tree | 6018e7a5a4866d91ca870708f067750570820566 /toolsrc/src/vcpkg_cmd_arguments.cpp | |
| parent | 0fdd57983a6ea25324df861d96c1c45136160338 (diff) | |
| download | vcpkg-fc1e55173b23afeb46142e6d656043a4b6f4b21c.tar.gz vcpkg-fc1e55173b23afeb46142e6d656043a4b6f4b21c.zip | |
Rename check_max_args to check_max_arg_count and introduce min/exact variants
Diffstat (limited to 'toolsrc/src/vcpkg_cmd_arguments.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg_cmd_arguments.cpp | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/toolsrc/src/vcpkg_cmd_arguments.cpp b/toolsrc/src/vcpkg_cmd_arguments.cpp index ec6946b98..dd8b41a72 100644 --- a/toolsrc/src/vcpkg_cmd_arguments.cpp +++ b/toolsrc/src/vcpkg_cmd_arguments.cpp @@ -166,15 +166,50 @@ namespace vcpkg return output; } - void vcpkg_cmd_arguments::check_max_args(size_t arg_count, const char* example_text) const + void vcpkg_cmd_arguments::check_max_arg_count(const size_t expected_arg_count) const { - if (command_arguments.size() > arg_count) + return check_max_arg_count(expected_arg_count, ""); + } + + void vcpkg_cmd_arguments::check_min_arg_count(const size_t expected_arg_count) const + { + return check_min_arg_count(expected_arg_count, ""); + } + + void vcpkg_cmd_arguments::check_exact_arg_count(const size_t expected_arg_count) const + { + return check_exact_arg_count(expected_arg_count, ""); + } + + void vcpkg_cmd_arguments::check_max_arg_count(const size_t expected_arg_count, const char* example_text) const + { + const size_t actual_arg_count = command_arguments.size(); + if (actual_arg_count > expected_arg_count) { - System::println(System::color::error, "Error: too many arguments to command %s", command); - if (example_text != nullptr) - print_example(example_text); - else - print_usage(); + System::println(System::color::error, "Error: %s requires at most %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count); + System::print(example_text); + exit(EXIT_FAILURE); + } + } + + void vcpkg_cmd_arguments::check_min_arg_count(const size_t expected_arg_count, const char* example_text) const + { + const size_t actual_arg_count = command_arguments.size(); + if (actual_arg_count < expected_arg_count) + { + System::println(System::color::error, "Error: %s requires at least %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count); + System::print(example_text); + exit(EXIT_FAILURE); + } + } + + void vcpkg_cmd_arguments::check_exact_arg_count(const size_t expected_arg_count, const char* example_text) const + { + const size_t actual_arg_count = command_arguments.size(); + if (actual_arg_count != expected_arg_count) + { + System::println(System::color::error, "Error: %s requires %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count); + System::print(example_text); exit(EXIT_FAILURE); } } |
