diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2016-09-30 16:49:30 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2016-09-30 16:49:30 -0700 |
| commit | 8becbe15a2a7f229041b70d0333ffc96522efb6f (patch) | |
| tree | 779080b755ea779421e546e10c1f8de388140c7a | |
| parent | bcb2be360a3ce577fc09fe1ffb6b7e0335ebb889 (diff) | |
| download | vcpkg-8becbe15a2a7f229041b70d0333ffc96522efb6f.tar.gz vcpkg-8becbe15a2a7f229041b70d0333ffc96522efb6f.zip | |
Place check_and_get_package_spec in a separate file
| -rw-r--r-- | toolsrc/include/vcpkg_Input.h | 11 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg_cmd_arguments.h | 5 | ||||
| -rw-r--r-- | toolsrc/src/commands_edit.cpp | 3 | ||||
| -rw-r--r-- | toolsrc/src/commands_installation.cpp | 5 | ||||
| -rw-r--r-- | toolsrc/src/commands_remove.cpp | 3 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg_Input.cpp | 29 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg_cmd_arguments.cpp | 24 | ||||
| -rw-r--r-- | toolsrc/vcpkg/vcpkg.vcxproj | 2 | ||||
| -rw-r--r-- | toolsrc/vcpkg/vcpkg.vcxproj.filters | 6 |
9 files changed, 55 insertions, 33 deletions
diff --git a/toolsrc/include/vcpkg_Input.h b/toolsrc/include/vcpkg_Input.h new file mode 100644 index 000000000..7041001c8 --- /dev/null +++ b/toolsrc/include/vcpkg_Input.h @@ -0,0 +1,11 @@ +#pragma once +#include <vector> +#include <string> +#include "package_spec.h" + +namespace vcpkg {namespace Input +{ + package_spec check_and_get_package_spec(const std::string& package_spec_as_string, const triplet& default_target_triplet, const char* example_text); + + std::vector<package_spec> check_and_get_package_specs(const std::vector<std::string>& package_specs_as_strings, const triplet& default_target_triplet, const char* example_text); +}} diff --git a/toolsrc/include/vcpkg_cmd_arguments.h b/toolsrc/include/vcpkg_cmd_arguments.h index 54b97cde1..95feb4814 100644 --- a/toolsrc/include/vcpkg_cmd_arguments.h +++ b/toolsrc/include/vcpkg_cmd_arguments.h @@ -4,9 +4,7 @@ #include <vector> #include <unordered_set> #include "opt_bool.h" -#include "package_spec.h" #include "vcpkg_paths.h" -#include "StatusParagraphs.h" namespace vcpkg { @@ -15,9 +13,6 @@ namespace vcpkg static vcpkg_cmd_arguments create_from_command_line(const int argc, const wchar_t* const* const argv); static vcpkg_cmd_arguments create_from_arg_sequence(const std::string* arg_begin, const std::string* arg_end); - static package_spec check_and_get_package_spec(const std::string& package_spec_as_string, const triplet& default_target_triplet, const char* example_text); - static std::vector<package_spec> check_and_get_package_specs(const std::vector<std::string>& package_specs_as_strings, const triplet& default_target_triplet, const char* example_text); - std::unique_ptr<std::string> vcpkg_root_dir; std::unique_ptr<std::string> target_triplet; opt_bool debug = opt_bool::unspecified; diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 4973d6ef2..b17c02d5a 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -1,5 +1,6 @@ #include "vcpkg_Commands.h" #include "vcpkg_System.h" +#include "vcpkg_Input.h" namespace vcpkg { @@ -7,7 +8,7 @@ namespace vcpkg { static const std::string example = create_example_string("edit zlib"); args.check_exact_arg_count(1, example.c_str()); - const package_spec spec = vcpkg_cmd_arguments::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); + const package_spec spec = Input::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); diff --git a/toolsrc/src/commands_installation.cpp b/toolsrc/src/commands_installation.cpp index 9eacfedcc..9eedebdbe 100644 --- a/toolsrc/src/commands_installation.cpp +++ b/toolsrc/src/commands_installation.cpp @@ -7,6 +7,7 @@ #include "post_build_lint.h" #include "vcpkg_System.h" #include "vcpkg_Dependencies.h" +#include "vcpkg_Input.h" namespace vcpkg { @@ -69,7 +70,7 @@ namespace vcpkg args.check_min_arg_count(1, example.c_str()); StatusParagraphs status_db = database_load_check(paths); - std::vector<package_spec> specs = vcpkg_cmd_arguments::check_and_get_package_specs(args.command_arguments, default_target_triplet, example.c_str()); + std::vector<package_spec> specs = Input::check_and_get_package_specs(args.command_arguments, default_target_triplet, example.c_str()); std::vector<package_spec> install_plan = Dependencies::create_dependency_ordered_install_plan(paths, specs, status_db); Checks::check_exit(!install_plan.empty(), "Install plan cannot be empty"); std::string specs_string = to_string(install_plan[0]); @@ -130,7 +131,7 @@ namespace vcpkg args.check_exact_arg_count(1, example.c_str()); StatusParagraphs status_db = database_load_check(paths); - const package_spec spec = vcpkg_cmd_arguments::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); + const package_spec spec = Input::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); std::unordered_set<package_spec> unmet_dependencies = Dependencies::find_unmet_dependencies(paths, spec, status_db); if (!unmet_dependencies.empty()) { diff --git a/toolsrc/src/commands_remove.cpp b/toolsrc/src/commands_remove.cpp index fd0c43de5..ebc000040 100644 --- a/toolsrc/src/commands_remove.cpp +++ b/toolsrc/src/commands_remove.cpp @@ -1,6 +1,7 @@ #include "vcpkg_Commands.h" #include "vcpkg.h" #include "vcpkg_System.h" +#include "vcpkg_Input.h" namespace vcpkg { @@ -28,7 +29,7 @@ namespace vcpkg const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments({OPTION_PURGE}); auto status_db = database_load_check(paths); - std::vector<package_spec> specs = vcpkg_cmd_arguments::check_and_get_package_specs(args.command_arguments, default_target_triplet, example.c_str()); + std::vector<package_spec> specs = Input::check_and_get_package_specs(args.command_arguments, default_target_triplet, example.c_str()); bool alsoRemoveFolderFromPackages = options.find(OPTION_PURGE) != options.end(); for (const package_spec& spec : specs) diff --git a/toolsrc/src/vcpkg_Input.cpp b/toolsrc/src/vcpkg_Input.cpp new file mode 100644 index 000000000..de5890da1 --- /dev/null +++ b/toolsrc/src/vcpkg_Input.cpp @@ -0,0 +1,29 @@ +#include "vcpkg_Input.h" +#include "vcpkg_System.h" + +namespace vcpkg {namespace Input +{ + package_spec check_and_get_package_spec(const std::string& package_spec_as_string, const triplet& default_target_triplet, const char* example_text) + { + expected<package_spec> expected_spec = package_spec::from_string(package_spec_as_string, default_target_triplet); + if (auto spec = expected_spec.get()) + { + return *spec; + } + + System::println(System::color::error, "Error: %s: %s", expected_spec.error_code().message(), package_spec_as_string); + System::print(example_text); + exit(EXIT_FAILURE); + } + + std::vector<package_spec> check_and_get_package_specs(const std::vector<std::string>& package_specs_as_strings, const triplet& default_target_triplet, const char* example_text) + { + std::vector<package_spec> specs; + for (const std::string& spec : package_specs_as_strings) + { + specs.push_back(check_and_get_package_spec(spec, default_target_triplet, example_text)); + } + + return specs; + } +}} diff --git a/toolsrc/src/vcpkg_cmd_arguments.cpp b/toolsrc/src/vcpkg_cmd_arguments.cpp index f1ab4e937..a286ba9b7 100644 --- a/toolsrc/src/vcpkg_cmd_arguments.cpp +++ b/toolsrc/src/vcpkg_cmd_arguments.cpp @@ -50,30 +50,6 @@ namespace vcpkg option_field = new_setting; } - package_spec vcpkg_cmd_arguments::check_and_get_package_spec(const std::string& package_spec_as_string, const triplet& default_target_triplet, const char* example_text) - { - expected<package_spec> expected_spec = package_spec::from_string(package_spec_as_string, default_target_triplet); - if (auto spec = expected_spec.get()) - { - return *spec; - } - - System::println(System::color::error, "Error: %s: %s", expected_spec.error_code().message(), package_spec_as_string); - System::print(example_text); - exit(EXIT_FAILURE); - } - - std::vector<package_spec> vcpkg_cmd_arguments::check_and_get_package_specs(const std::vector<std::string>& package_specs_as_strings, const triplet& default_target_triplet, const char* example_text) - { - std::vector<package_spec> specs; - for (const std::string& spec : package_specs_as_strings) - { - specs.push_back(check_and_get_package_spec(spec, default_target_triplet, example_text)); - } - - return specs; - } - vcpkg_cmd_arguments vcpkg_cmd_arguments::create_from_command_line(const int argc, const wchar_t* const* const argv) { std::vector<std::string> v; diff --git a/toolsrc/vcpkg/vcpkg.vcxproj b/toolsrc/vcpkg/vcpkg.vcxproj index a59683470..40c6f12cf 100644 --- a/toolsrc/vcpkg/vcpkg.vcxproj +++ b/toolsrc/vcpkg/vcpkg.vcxproj @@ -146,6 +146,7 @@ <ClCompile Include="..\src\main.cpp" /> <ClCompile Include="..\src\commands_help.cpp" /> <ClCompile Include="..\src\post_build_lint.cpp" /> + <ClCompile Include="..\src\vcpkg_Input.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\include\vcpkg_cmd_arguments.h" /> @@ -153,6 +154,7 @@ <ClInclude Include="..\include\vcpkg_Dependencies.h" /> <ClInclude Include="..\include\vcpkg_Environment.h" /> <ClInclude Include="..\include\post_build_lint.h" /> + <ClInclude Include="..\include\vcpkg_Input.h" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\vcpkgcommon\vcpkgcommon.vcxproj"> diff --git a/toolsrc/vcpkg/vcpkg.vcxproj.filters b/toolsrc/vcpkg/vcpkg.vcxproj.filters index 2e8a343fc..3b836ab3c 100644 --- a/toolsrc/vcpkg/vcpkg.vcxproj.filters +++ b/toolsrc/vcpkg/vcpkg.vcxproj.filters @@ -69,6 +69,9 @@ <ClCompile Include="..\src\vcpkg_Dependencies.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\src\vcpkg_Input.cpp"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\include\post_build_lint.h"> @@ -86,5 +89,8 @@ <ClInclude Include="..\include\vcpkg_Dependencies.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="..\include\vcpkg_Input.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file |
