From 21e9c58ff6ac3720c2ca3e8a503d405f79a1af96 Mon Sep 17 00:00:00 2001 From: Thomas1664 <46387399+Thomas1664@users.noreply.github.com> Date: Fri, 22 Dec 2023 12:53:12 +0000 Subject: [PATCH] Print errors to stderr --- include/vcpkg/commands.h | 2 +- src/vcpkg.cpp | 4 ++-- src/vcpkg/base/cmd-parser.cpp | 8 +++----- src/vcpkg/commands.cpp | 4 ++-- src/vcpkg/commands.help.cpp | 15 ++++++++------- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/include/vcpkg/commands.h b/include/vcpkg/commands.h index 12e6c5c30e..15673d0c55 100644 --- a/include/vcpkg/commands.h +++ b/include/vcpkg/commands.h @@ -32,6 +32,6 @@ namespace vcpkg std::vector get_all_commands_metadata(); - void print_zero_args_usage(); + std::string get_zero_args_usage(); void print_full_command_list(); } diff --git a/src/vcpkg.cpp b/src/vcpkg.cpp index 958dcaef4f..76e6ddacce 100644 --- a/src/vcpkg.cpp +++ b/src/vcpkg.cpp @@ -47,7 +47,7 @@ namespace LocalizedString::from_raw(ErrorPrefix) .append(msgVcpkgInvalidCommand, msg::command_name = args.get_command()) .append_raw('\n')); - print_zero_args_usage(); + msg::write_unlocalized_text_to_stderr(Color::none, get_zero_args_usage()); Checks::exit_fail(VCPKG_LINE_INFO); } @@ -99,7 +99,7 @@ namespace if (args.get_command().empty()) { - print_zero_args_usage(); + msg::write_unlocalized_text_to_stderr(Color::none, get_zero_args_usage()); Checks::exit_fail(VCPKG_LINE_INFO); } diff --git a/src/vcpkg/base/cmd-parser.cpp b/src/vcpkg/base/cmd-parser.cpp index 2c3a9cdee7..52570b03c9 100644 --- a/src/vcpkg/base/cmd-parser.cpp +++ b/src/vcpkg/base/cmd-parser.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -1010,14 +1011,11 @@ namespace vcpkg return; } - for (auto&& error : errors) - { - msg::write_unlocalized_text(Color::error, error.append_raw("\n")); - } + msg::write_unlocalized_text_to_stderr(Color::error, Strings::join("\n", errors).append("\n")); example.append_raw('\n'); append_options_table(example); - msg::println(Color::none, example); + stderr_sink.println(Color::none, example); Checks::exit_with_code(VCPKG_LINE_INFO, 1); } } diff --git a/src/vcpkg/commands.cpp b/src/vcpkg/commands.cpp index 5187b62bef..e76f47d786 100644 --- a/src/vcpkg/commands.cpp +++ b/src/vcpkg/commands.cpp @@ -156,7 +156,7 @@ namespace vcpkg } } - void print_zero_args_usage() + std::string get_zero_args_usage() { HelpTableFormatter table; table.example(msg::format(msgVcpkgUsage)); @@ -212,7 +212,7 @@ namespace vcpkg table.example(msg::format(msgHelpExampleCommand)); table.m_str.push_back('\n'); - msg::write_unlocalized_text_to_stderr(Color::none, table.m_str); + return table.m_str; } void print_full_command_list() diff --git a/src/vcpkg/commands.help.cpp b/src/vcpkg/commands.help.cpp index 6642b13456..84a5178aba 100644 --- a/src/vcpkg/commands.help.cpp +++ b/src/vcpkg/commands.help.cpp @@ -1,4 +1,5 @@ #include +#include #include #include @@ -20,7 +21,7 @@ namespace void (*print)(const VcpkgPaths&); }; - void help_topics(const VcpkgPaths&); + LocalizedString help_topics(); void help_topic_versioning(const VcpkgPaths&) { @@ -70,12 +71,12 @@ namespace {"assetcaching", [](const VcpkgPaths&) { msg::println(format_help_topic_asset_caching()); }}, {"binarycaching", [](const VcpkgPaths&) { msg::println(format_help_topic_binary_caching()); }}, {"commands", [](const VcpkgPaths&) { print_full_command_list(); }}, - {"topics", help_topics}, + {"topics", [](const VcpkgPaths&) { msg::print(help_topics()); }}, {"triplet", [](const VcpkgPaths& paths) { help_topic_valid_triplet(paths.get_triplet_db()); }}, {"versioning", help_topic_versioning}, }; - void help_topics(const VcpkgPaths&) + LocalizedString help_topics() { std::vector all_topic_names; for (auto&& topic : topics) @@ -94,7 +95,7 @@ namespace result.append(msgAvailableHelpTopics); result.append_floating_list(1, all_topic_names); result.append_raw('\n'); - msg::print(result); + return result; } } // unnamed namespace @@ -155,7 +156,7 @@ namespace vcpkg if (parsed.command_arguments.empty()) { - print_zero_args_usage(); + msg::write_unlocalized_text_to_stdout(Color::none, get_zero_args_usage()); Checks::exit_success(VCPKG_LINE_INFO); } const auto& topic = parsed.command_arguments[0]; @@ -187,8 +188,8 @@ namespace vcpkg } } - msg::println_error(msgUnknownTopic, msg::value = topic); - help_topics(paths); + stderr_sink.println_error(msgUnknownTopic, msg::value = topic); + stderr_sink.print(help_topics()); get_global_metrics_collector().track_string(StringMetric::CommandContext, "unknown"); Checks::exit_fail(VCPKG_LINE_INFO); }