From 60b49cf4f7958ae934bebfa165815ea79e403359 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 6 Apr 2017 18:57:17 -0700 Subject: [PATCH] Extract functions for output formatting --- toolsrc/include/vcpkg_Dependencies.h | 2 ++ toolsrc/src/commands_remove.cpp | 22 ++++------------------ toolsrc/src/vcpkg_Dependencies.cpp | 13 +++++++++++++ 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/toolsrc/include/vcpkg_Dependencies.h b/toolsrc/include/vcpkg_Dependencies.h index 3243a0915..96fe1031a 100644 --- a/toolsrc/include/vcpkg_Dependencies.h +++ b/toolsrc/include/vcpkg_Dependencies.h @@ -14,6 +14,8 @@ namespace vcpkg::Dependencies AUTO_SELECTED }; + std::string to_output_string(RequestType request_type, const CStringView s); + enum class InstallPlanType { UNKNOWN, diff --git a/toolsrc/src/commands_remove.cpp b/toolsrc/src/commands_remove.cpp index 185bc4185..8bf2c767b 100644 --- a/toolsrc/src/commands_remove.cpp +++ b/toolsrc/src/commands_remove.cpp @@ -121,32 +121,18 @@ namespace vcpkg::Commands::Remove } } + auto print_lambda = [](const PackageSpecWithRemovePlan* p) { return to_output_string(p->plan.request_type, p->spec.to_string()); }; + if (!not_installed.empty()) { std::sort(not_installed.begin(), not_installed.end(), &PackageSpecWithRemovePlan::compare_by_name); - System::println("The following packages are not installed, so not removed:\n%s", - Strings::join("\n", not_installed, [](const PackageSpecWithRemovePlan* p) - { - return " " + p->spec.to_string(); - })); + System::println("The following packages are not installed, so not removed:\n%s", Strings::join("\n", not_installed, print_lambda)); } if (!remove.empty()) { std::sort(remove.begin(), remove.end(), &PackageSpecWithRemovePlan::compare_by_name); - System::println("The following packages will be removed:\n%s", - Strings::join("\n", remove, [](const PackageSpecWithRemovePlan* p) - { - switch (p->plan.request_type) - { - case RequestType::AUTO_SELECTED: - return " * " + p->spec.to_string(); - case RequestType::USER_REQUESTED: - return " " + p->spec.to_string(); - default: - Checks::unreachable(VCPKG_LINE_INFO); - } - })); + System::println("The following packages will be removed:\n%s", Strings::join("\n", remove, print_lambda)); } } diff --git a/toolsrc/src/vcpkg_Dependencies.cpp b/toolsrc/src/vcpkg_Dependencies.cpp index 7f21d04c2..b09ad9ff5 100644 --- a/toolsrc/src/vcpkg_Dependencies.cpp +++ b/toolsrc/src/vcpkg_Dependencies.cpp @@ -9,6 +9,19 @@ namespace vcpkg::Dependencies { + std::string to_output_string(RequestType request_type, const CStringView s) + { + switch (request_type) + { + case RequestType::AUTO_SELECTED: + return Strings::format(" * %s", s); + case RequestType::USER_REQUESTED: + return Strings::format(" %s", s); + default: + Checks::unreachable(VCPKG_LINE_INFO); + } + } + InstallPlanAction::InstallPlanAction() : plan_type(InstallPlanType::UNKNOWN), binary_pgh(nullopt), source_pgh(nullopt) { }