diff --git a/include/vcpkg/dependencies.h b/include/vcpkg/dependencies.h index ef635740f0..994952581f 100644 --- a/include/vcpkg/dependencies.h +++ b/include/vcpkg/dependencies.h @@ -214,5 +214,5 @@ namespace vcpkg FormattedPlan format_plan(const ActionPlan& action_plan, const Path& builtin_ports_dir); - void print_plan(const ActionPlan& action_plan, const bool is_recursive, const Path& builtin_ports_dir); + FormattedPlan print_plan(const ActionPlan& action_plan, const Path& builtin_ports_dir); } diff --git a/src/vcpkg/commands.ci.cpp b/src/vcpkg/commands.ci.cpp index 21802f6fa8..d9152c01ed 100644 --- a/src/vcpkg/commands.ci.cpp +++ b/src/vcpkg/commands.ci.cpp @@ -490,7 +490,7 @@ namespace vcpkg if (is_dry_run) { - print_plan(action_plan, true, paths.builtin_ports_directory()); + print_plan(action_plan, paths.builtin_ports_directory()); if (!regressions.empty()) { msg::println(Color::error, msgCiBaselineRegressionHeader); diff --git a/src/vcpkg/commands.install.cpp b/src/vcpkg/commands.install.cpp index 5b1f16dc9d..6568c27a6f 100644 --- a/src/vcpkg/commands.install.cpp +++ b/src/vcpkg/commands.install.cpp @@ -1324,7 +1324,12 @@ namespace vcpkg } #endif // defined(_WIN32) - print_plan(action_plan, is_recursive, paths.builtin_ports_directory()); + const auto formatted = print_plan(action_plan, paths.builtin_ports_directory()); + if (!is_recursive && formatted.has_removals) + { + msg::println_warning(msgPackagesToRebuildSuggestRecurse); + Checks::exit_fail(VCPKG_LINE_INFO); + } auto it_pkgsconfig = options.settings.find(SwitchXWriteNuGetPackagesConfig); if (it_pkgsconfig != options.settings.end()) diff --git a/src/vcpkg/commands.set-installed.cpp b/src/vcpkg/commands.set-installed.cpp index 733dbf0492..fbd86de8fb 100644 --- a/src/vcpkg/commands.set-installed.cpp +++ b/src/vcpkg/commands.set-installed.cpp @@ -210,7 +210,7 @@ namespace vcpkg auto status_db = database_load_check(fs, paths.installed()); adjust_action_plan_to_status_db(action_plan, status_db); - print_plan(action_plan, true, paths.builtin_ports_directory()); + print_plan(action_plan, paths.builtin_ports_directory()); if (auto p_pkgsconfig = maybe_pkgconfig.get()) { diff --git a/src/vcpkg/commands.upgrade.cpp b/src/vcpkg/commands.upgrade.cpp index 29d0996468..e872134449 100644 --- a/src/vcpkg/commands.upgrade.cpp +++ b/src/vcpkg/commands.upgrade.cpp @@ -190,7 +190,7 @@ namespace vcpkg Checks::check_exit(VCPKG_LINE_INFO, !action_plan.empty()); action_plan.print_unsupported_warnings(); - print_plan(action_plan, true, paths.builtin_ports_directory()); + print_plan(action_plan, paths.builtin_ports_directory()); if (!no_dry_run) { diff --git a/src/vcpkg/dependencies.cpp b/src/vcpkg/dependencies.cpp index add2b6d182..21e39a12fd 100644 --- a/src/vcpkg/dependencies.cpp +++ b/src/vcpkg/dependencies.cpp @@ -1316,15 +1316,11 @@ namespace vcpkg return ret; } - void print_plan(const ActionPlan& action_plan, const bool is_recursive, const Path& builtin_ports_dir) + FormattedPlan print_plan(const ActionPlan& action_plan, const Path& builtin_ports_dir) { auto formatted = format_plan(action_plan, builtin_ports_dir); msg::print(formatted.text); - if (!is_recursive && formatted.has_removals) - { - msg::println_warning(msgPackagesToRebuildSuggestRecurse); - Checks::exit_fail(VCPKG_LINE_INFO); - } + return formatted; } namespace