mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-29 16:49:01 +08:00
ci
: Check for --options, delay loading status_db, refactor
This commit is contained in:
parent
e99e577dc9
commit
4cbd4e0cc8
@ -14,17 +14,10 @@ namespace vcpkg::Commands::CI
|
||||
using Dependencies::install_plan_type;
|
||||
using Build::BuildResult;
|
||||
|
||||
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
||||
static std::vector<package_spec> load_all_package_specs(const fs::path& directory, const triplet& target_triplet)
|
||||
{
|
||||
static const std::string example = Commands::Help::create_example_string("ci x64-windows");
|
||||
args.check_max_arg_count(1, example);
|
||||
const triplet target_triplet = args.command_arguments.size() == 1 ? triplet::from_canonical_name(args.command_arguments.at(0)) : default_target_triplet;
|
||||
Input::check_triplet(target_triplet, paths);
|
||||
|
||||
StatusParagraphs status_db = database_load_check(paths);
|
||||
|
||||
std::vector<fs::path> port_folders;
|
||||
Files::non_recursive_find_matching_paths_in_dir(paths.ports, [](const fs::path& current)
|
||||
Files::non_recursive_find_matching_paths_in_dir(directory, [](const fs::path& current)
|
||||
{
|
||||
return fs::is_directory(current);
|
||||
}, &port_folders);
|
||||
@ -35,6 +28,19 @@ namespace vcpkg::Commands::CI
|
||||
specs.push_back(package_spec::from_name_and_triplet(p.filename().generic_string(), target_triplet).get_or_throw());
|
||||
}
|
||||
|
||||
return specs;
|
||||
}
|
||||
|
||||
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
||||
{
|
||||
static const std::string example = Commands::Help::create_example_string("ci x64-windows");
|
||||
args.check_max_arg_count(1, example);
|
||||
const triplet target_triplet = args.command_arguments.size() == 1 ? triplet::from_canonical_name(args.command_arguments.at(0)) : default_target_triplet;
|
||||
Input::check_triplet(target_triplet, paths);
|
||||
args.check_and_get_optional_command_arguments({});
|
||||
const std::vector<package_spec> specs = load_all_package_specs(paths.ports, target_triplet);
|
||||
|
||||
StatusParagraphs status_db = database_load_check(paths);
|
||||
const std::vector<package_spec_with_install_plan> install_plan = Dependencies::create_install_plan(paths, specs, status_db);
|
||||
Checks::check_exit(!install_plan.empty(), "Install plan cannot be empty");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user