mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-29 12:49:01 +08:00
[vcpkg_cmd_arguments] Use std::string instead of char*
This commit is contained in:
parent
d02fe9bdae
commit
b629cd9044
@ -24,11 +24,11 @@ namespace vcpkg
|
|||||||
std::unordered_set<std::string> check_and_get_optional_command_arguments(const std::vector<std::string>& valid_options) const;
|
std::unordered_set<std::string> check_and_get_optional_command_arguments(const std::vector<std::string>& valid_options) const;
|
||||||
|
|
||||||
void check_max_arg_count(const size_t expected_arg_count) const;
|
void check_max_arg_count(const size_t expected_arg_count) const;
|
||||||
void check_max_arg_count(const size_t expected_arg_count, const char* example_text) const;
|
void check_max_arg_count(const size_t expected_arg_count, const std::string& example_text) const;
|
||||||
void check_min_arg_count(const size_t expected_arg_count) const;
|
void check_min_arg_count(const size_t expected_arg_count) const;
|
||||||
void check_min_arg_count(const size_t expected_arg_count, const char* example_text) const;
|
void check_min_arg_count(const size_t expected_arg_count, const std::string& example_text) const;
|
||||||
void check_exact_arg_count(const size_t expected_arg_count) const;
|
void check_exact_arg_count(const size_t expected_arg_count) const;
|
||||||
void check_exact_arg_count(const size_t expected_arg_count, const char* example_text) const;
|
void check_exact_arg_count(const size_t expected_arg_count, const std::string& example_text) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unordered_set<std::string> optional_command_arguments;
|
std::unordered_set<std::string> optional_command_arguments;
|
||||||
|
@ -38,7 +38,7 @@ namespace vcpkg
|
|||||||
{
|
{
|
||||||
static const std::string example = Strings::format(
|
static const std::string example = Strings::format(
|
||||||
"The argument should be a substring to search for, or no argument to display all cached libraries.\n%s", create_example_string("cache png"));
|
"The argument should be a substring to search for, or no argument to display all cached libraries.\n%s", create_example_string("cache png"));
|
||||||
args.check_max_arg_count(1, example.c_str());
|
args.check_max_arg_count(1, example);
|
||||||
|
|
||||||
const std::vector<BinaryParagraph> binary_paragraphs = read_all_binary_paragraphs(paths);
|
const std::vector<BinaryParagraph> binary_paragraphs = read_all_binary_paragraphs(paths);
|
||||||
if (binary_paragraphs.empty())
|
if (binary_paragraphs.empty())
|
||||||
|
@ -9,8 +9,8 @@ namespace vcpkg
|
|||||||
void create_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
void create_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
||||||
{
|
{
|
||||||
static const std::string example = create_example_string(R"###(create zlib2 http://zlib.net/zlib128.zip "zlib128-2.zip")###");
|
static const std::string example = create_example_string(R"###(create zlib2 http://zlib.net/zlib128.zip "zlib128-2.zip")###");
|
||||||
args.check_max_arg_count(3, example.c_str());
|
args.check_max_arg_count(3, example);
|
||||||
args.check_min_arg_count(2, example.c_str());
|
args.check_min_arg_count(2, example);
|
||||||
|
|
||||||
const std::string port_name = args.command_arguments.at(0);
|
const std::string port_name = args.command_arguments.at(0);
|
||||||
Environment::ensure_utilities_on_path(paths);
|
Environment::ensure_utilities_on_path(paths);
|
||||||
|
@ -7,7 +7,7 @@ namespace vcpkg
|
|||||||
void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
||||||
{
|
{
|
||||||
static const std::string example = create_example_string("edit zlib");
|
static const std::string example = create_example_string("edit zlib");
|
||||||
args.check_exact_arg_count(1, example.c_str());
|
args.check_exact_arg_count(1, example);
|
||||||
const std::string port_name = args.command_arguments.at(0);
|
const std::string port_name = args.command_arguments.at(0);
|
||||||
|
|
||||||
const fs::path portpath = paths.ports / port_name;
|
const fs::path portpath = paths.ports / port_name;
|
||||||
|
@ -27,8 +27,8 @@ namespace vcpkg
|
|||||||
{
|
{
|
||||||
static const std::string example = Strings::format(
|
static const std::string example = Strings::format(
|
||||||
"The argument should be a file path\n%s", create_example_string("hash boost_1_62_0.tar.bz2"));
|
"The argument should be a file path\n%s", create_example_string("hash boost_1_62_0.tar.bz2"));
|
||||||
args.check_min_arg_count(1, example.c_str());
|
args.check_min_arg_count(1, example);
|
||||||
args.check_max_arg_count(2, example.c_str());
|
args.check_max_arg_count(2, example);
|
||||||
|
|
||||||
if (args.command_arguments.size() == 1)
|
if (args.command_arguments.size() == 1)
|
||||||
{
|
{
|
||||||
|
@ -78,7 +78,7 @@ namespace vcpkg
|
|||||||
void import_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
void import_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
||||||
{
|
{
|
||||||
static const std::string example = create_example_string(R"(import C:\path\to\CONTROLfile C:\path\to\includedir C:\path\to\projectdir)");
|
static const std::string example = create_example_string(R"(import C:\path\to\CONTROLfile C:\path\to\includedir C:\path\to\projectdir)");
|
||||||
args.check_exact_arg_count(3, example.c_str());
|
args.check_exact_arg_count(3, example);
|
||||||
|
|
||||||
const fs::path control_file_path(args.command_arguments[0]);
|
const fs::path control_file_path(args.command_arguments[0]);
|
||||||
const fs::path include_directory(args.command_arguments[1]);
|
const fs::path include_directory(args.command_arguments[1]);
|
||||||
|
@ -216,7 +216,7 @@ namespace vcpkg
|
|||||||
void install_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
void install_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
||||||
{
|
{
|
||||||
static const std::string example = create_example_string("install zlib zlib:x64-windows curl boost");
|
static const std::string example = create_example_string("install zlib zlib:x64-windows curl boost");
|
||||||
args.check_min_arg_count(1, example.c_str());
|
args.check_min_arg_count(1, example);
|
||||||
StatusParagraphs status_db = database_load_check(paths);
|
StatusParagraphs status_db = database_load_check(paths);
|
||||||
|
|
||||||
std::vector<package_spec> specs = Input::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());
|
||||||
@ -276,7 +276,7 @@ namespace vcpkg
|
|||||||
// Installing multiple packages leads to unintuitive behavior if one of them depends on another.
|
// Installing multiple packages leads to unintuitive behavior if one of them depends on another.
|
||||||
// Allowing only 1 package for now.
|
// Allowing only 1 package for now.
|
||||||
|
|
||||||
args.check_exact_arg_count(1, example.c_str());
|
args.check_exact_arg_count(1, example);
|
||||||
|
|
||||||
StatusParagraphs status_db = database_load_check(paths);
|
StatusParagraphs status_db = database_load_check(paths);
|
||||||
|
|
||||||
@ -332,7 +332,7 @@ namespace vcpkg
|
|||||||
void build_external_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
void build_external_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
||||||
{
|
{
|
||||||
static const std::string example = create_example_string(R"(build_external zlib2 C:\path\to\dir\with\controlfile\)");
|
static const std::string example = create_example_string(R"(build_external zlib2 C:\path\to\dir\with\controlfile\)");
|
||||||
args.check_exact_arg_count(2, example.c_str());
|
args.check_exact_arg_count(2, example);
|
||||||
|
|
||||||
expected<package_spec> maybe_current_spec = package_spec::from_string(args.command_arguments[0], default_target_triplet);
|
expected<package_spec> maybe_current_spec = package_spec::from_string(args.command_arguments[0], default_target_triplet);
|
||||||
if (auto spec = maybe_current_spec.get())
|
if (auto spec = maybe_current_spec.get())
|
||||||
|
@ -297,7 +297,7 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
|
|||||||
{
|
{
|
||||||
static const std::string example = Strings::format("Commands:\n"
|
static const std::string example = Strings::format("Commands:\n"
|
||||||
"%s", INTEGRATE_COMMAND_HELPSTRING);
|
"%s", INTEGRATE_COMMAND_HELPSTRING);
|
||||||
args.check_exact_arg_count(1, example.c_str());
|
args.check_exact_arg_count(1, example);
|
||||||
|
|
||||||
if (args.command_arguments[0] == "install")
|
if (args.command_arguments[0] == "install")
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@ namespace vcpkg
|
|||||||
{
|
{
|
||||||
static const std::string example = Strings::format(
|
static const std::string example = Strings::format(
|
||||||
"The argument should be a substring to search for, or no argument to display all installed libraries.\n%s", create_example_string("list png"));
|
"The argument should be a substring to search for, or no argument to display all installed libraries.\n%s", create_example_string("list png"));
|
||||||
args.check_max_arg_count(1, example.c_str());
|
args.check_max_arg_count(1, example);
|
||||||
|
|
||||||
const StatusParagraphs status_paragraphs = database_load_check(paths);
|
const StatusParagraphs status_paragraphs = database_load_check(paths);
|
||||||
std::vector<StatusParagraph> installed_packages;
|
std::vector<StatusParagraph> installed_packages;
|
||||||
|
@ -24,7 +24,7 @@ namespace vcpkg
|
|||||||
void owns_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
void owns_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
||||||
{
|
{
|
||||||
static const std::string example = Strings::format("The argument should be a pattern to search for. %s", create_example_string("owns zlib.dll"));
|
static const std::string example = Strings::format("The argument should be a pattern to search for. %s", create_example_string("owns zlib.dll"));
|
||||||
args.check_exact_arg_count(1, example.c_str());
|
args.check_exact_arg_count(1, example);
|
||||||
|
|
||||||
StatusParagraphs status_db = database_load_check(paths);
|
StatusParagraphs status_db = database_load_check(paths);
|
||||||
search_file(paths, args.command_arguments[0], status_db);
|
search_file(paths, args.command_arguments[0], status_db);
|
||||||
|
@ -100,8 +100,8 @@ namespace vcpkg
|
|||||||
void portsdiff_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
void portsdiff_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
||||||
{
|
{
|
||||||
static const std::string example = Strings::format("The argument should be a branch/tag/hash to checkout.\n%s", create_example_string("portsdiff mybranchname"));
|
static const std::string example = Strings::format("The argument should be a branch/tag/hash to checkout.\n%s", create_example_string("portsdiff mybranchname"));
|
||||||
args.check_min_arg_count(1, example.c_str());
|
args.check_min_arg_count(1, example);
|
||||||
args.check_max_arg_count(2, example.c_str());
|
args.check_max_arg_count(2, example);
|
||||||
|
|
||||||
Environment::ensure_git_on_path(paths);
|
Environment::ensure_git_on_path(paths);
|
||||||
const std::wstring git_commit_id_for_previous_snapshot = Strings::utf8_to_utf16(args.command_arguments.at(0));
|
const std::wstring git_commit_id_for_previous_snapshot = Strings::utf8_to_utf16(args.command_arguments.at(0));
|
||||||
|
@ -169,7 +169,7 @@ namespace vcpkg
|
|||||||
void remove_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
void remove_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
|
||||||
{
|
{
|
||||||
static const std::string example = create_example_string("remove zlib zlib:x64-windows curl boost");
|
static const std::string example = create_example_string("remove zlib zlib:x64-windows curl boost");
|
||||||
args.check_min_arg_count(1, example.c_str());
|
args.check_min_arg_count(1, example);
|
||||||
|
|
||||||
const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments({OPTION_PURGE});
|
const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments({OPTION_PURGE});
|
||||||
auto status_db = database_load_check(paths);
|
auto status_db = database_load_check(paths);
|
||||||
|
@ -43,7 +43,7 @@ namespace vcpkg
|
|||||||
void search_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
void search_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
|
||||||
{
|
{
|
||||||
static const std::string example = Strings::format("The argument should be a substring to search for, or no argument to display all libraries.\n%s", create_example_string("search png"));
|
static const std::string example = Strings::format("The argument should be a substring to search for, or no argument to display all libraries.\n%s", create_example_string("search png"));
|
||||||
args.check_max_arg_count(1, example.c_str());
|
args.check_max_arg_count(1, example);
|
||||||
|
|
||||||
const std::vector<SourceParagraph> source_paragraphs = read_all_source_paragraphs(paths);
|
const std::vector<SourceParagraph> source_paragraphs = read_all_source_paragraphs(paths);
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ namespace vcpkg
|
|||||||
return check_exact_arg_count(expected_arg_count, "");
|
return check_exact_arg_count(expected_arg_count, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
void vcpkg_cmd_arguments::check_max_arg_count(const size_t expected_arg_count, const char* example_text) const
|
void vcpkg_cmd_arguments::check_max_arg_count(const size_t expected_arg_count, const std::string& example_text) const
|
||||||
{
|
{
|
||||||
const size_t actual_arg_count = command_arguments.size();
|
const size_t actual_arg_count = command_arguments.size();
|
||||||
if (actual_arg_count > expected_arg_count)
|
if (actual_arg_count > expected_arg_count)
|
||||||
@ -190,7 +190,7 @@ namespace vcpkg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void vcpkg_cmd_arguments::check_min_arg_count(const size_t expected_arg_count, const char* example_text) const
|
void vcpkg_cmd_arguments::check_min_arg_count(const size_t expected_arg_count, const std::string& example_text) const
|
||||||
{
|
{
|
||||||
const size_t actual_arg_count = command_arguments.size();
|
const size_t actual_arg_count = command_arguments.size();
|
||||||
if (actual_arg_count < expected_arg_count)
|
if (actual_arg_count < expected_arg_count)
|
||||||
@ -201,7 +201,7 @@ namespace vcpkg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void vcpkg_cmd_arguments::check_exact_arg_count(const size_t expected_arg_count, const char* example_text) const
|
void vcpkg_cmd_arguments::check_exact_arg_count(const size_t expected_arg_count, const std::string& example_text) const
|
||||||
{
|
{
|
||||||
const size_t actual_arg_count = command_arguments.size();
|
const size_t actual_arg_count = command_arguments.size();
|
||||||
if (actual_arg_count != expected_arg_count)
|
if (actual_arg_count != expected_arg_count)
|
||||||
|
Loading…
Reference in New Issue
Block a user