From 20095a697ae6060a02e8adb466e476bd255abf3e Mon Sep 17 00:00:00 2001 From: Pranav Srinivas Kumar Date: Wed, 21 Sep 2022 06:54:34 -0700 Subject: [PATCH 1/4] Added option=value support using #185 --- include/argparse/argparse.hpp | 37 +++++++++++++++++++++++++++++++++-- test/CMakeLists.txt | 1 + test/test_equals_form.cpp | 31 +++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 test/test_equals_form.cpp diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index f8d84f9e..8235ba80 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -1226,10 +1226,42 @@ class ArgumentParser { } private: + /* + * Pre-process this argument list. Anything starting with "--", that + * contains an =, where the prefix before the = has an entry in the + * options table, should be split. + */ + std::vector + preprocess_arguments(const std::vector &raw_arguments) { + std::vector arguments; + for (const auto &arg : raw_arguments) { + // Check that: + // - We don't have an argument named exactly this + // - The argument starts with "--" + // - The argument contains a "=" + std::size_t eqpos = arg.find("="); + if (m_argument_map.find(arg) == m_argument_map.end() && + arg.rfind("--", 0) == 0 && eqpos != std::string::npos) { + // Get the name of the potential option, and check it exists + std::string opt_name = arg.substr(0, eqpos); + if (m_argument_map.find(opt_name) != m_argument_map.end()) { + // This is the name of an option! Split it into two parts + arguments.push_back(std::move(opt_name)); + arguments.push_back(arg.substr(eqpos + 1)); + continue; + } + } + // If we've fallen through to here, then it's a standard argument + arguments.push_back(arg); + } + return arguments; + } + /* * @throws std::runtime_error in case of any invalid argument */ - void parse_args_internal(const std::vector &arguments) { + void parse_args_internal(const std::vector &raw_arguments) { + auto arguments = preprocess_arguments(raw_arguments); if (m_program_name.empty() && !arguments.empty()) { m_program_name = arguments.front(); } @@ -1294,7 +1326,8 @@ class ArgumentParser { * Like parse_args_internal but collects unused args into a vector */ std::vector - parse_known_args_internal(const std::vector &arguments) { + parse_known_args_internal(const std::vector &raw_arguments) { + auto arguments = preprocess_arguments(raw_arguments); std::vector unknown_arguments{}; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b57da7d4..dd7aecc0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -48,6 +48,7 @@ file(GLOB ARGPARSE_TEST_SOURCES test_version.cpp test_subparsers.cpp test_parse_known_args.cpp + test_equals_form.cpp ) set_source_files_properties(main.cpp PROPERTIES diff --git a/test/test_equals_form.cpp b/test/test_equals_form.cpp new file mode 100644 index 00000000..e09b664d --- /dev/null +++ b/test/test_equals_form.cpp @@ -0,0 +1,31 @@ +#include +#include +#include +using doctest::test_suite; + +TEST_CASE("Basic --value=value" * test_suite("equals_form")) { + argparse::ArgumentParser parser("test"); + parser.add_argument("--long"); + parser.parse_args({"test", "--long=value"}); + std::string result{parser.get("--long")}; + REQUIRE(result == "value"); +} + +TEST_CASE("Fallback = in regular option name" * test_suite("equals_form")) { + argparse::ArgumentParser parser("test"); + parser.add_argument("--long=mislead"); + parser.parse_args({"test", "--long=mislead", "value"}); + std::string result{parser.get("--long=mislead")}; + REQUIRE(result == "value"); +} + +TEST_CASE("Duplicate =-named and standard" * test_suite("equals_form")) { + argparse::ArgumentParser parser("test"); + parser.add_argument("--long=mislead"); + parser.add_argument("--long").default_value(std::string{"NO_VALUE"}); + parser.parse_args({"test", "--long=mislead", "value"}); + std::string result{parser.get("--long=mislead")}; + REQUIRE(result == "value"); + std::string result2{parser.get("--long")}; + REQUIRE(result2 == "NO_VALUE"); +} \ No newline at end of file From 6dd2a3cf4b16b99933618a0019e6a4cfed2d241b Mon Sep 17 00:00:00 2001 From: Pranav Srinivas Kumar Date: Wed, 21 Sep 2022 07:23:02 -0700 Subject: [PATCH 2/4] Added example to README for option=value support --- README.md | 36 ++++++++++++++++++++++++++++++++++++ include/argparse/test.cpp | 15 --------------- test/test_equals_form.cpp | 8 ++++++++ 3 files changed, 44 insertions(+), 15 deletions(-) delete mode 100644 include/argparse/test.cpp diff --git a/README.md b/README.md index 2ac64c7b..814dc21a 100644 --- a/README.md +++ b/README.md @@ -934,6 +934,42 @@ foo@bar:/home/dev/$ ./main fex baz ``` +## Using `option=value` syntax + +```cpp +#include "argparse.hpp" +#include + +int main(int argc, char *argv[]) { + argparse::ArgumentParser program("test"); + program.add_argument("--foo").implicit_value(true).default_value(false); + program.add_argument("--bar"); + + try { + program.parse_args(argc, argv); + } + catch (const std::runtime_error& err) { + std::cerr << err.what() << std::endl; + std::cerr << program; + std::exit(1); + } + + if (program.is_used("--foo")) { + std::cout << "--foo: " << std::boolalpha << program.get("--foo") << "\n"; + } + + if (program.is_used("--bar")) { + std::cout << "--bar: " << program.get("--bar") << "\n"; + } +} +``` + +```console +foo@bar:/home/dev/$ ./test --bar=BAR --foo +--foo: true +--bar: BAR +``` + ## CMake Integration Use the latest argparse in your CMake project without copying any content. diff --git a/include/argparse/test.cpp b/include/argparse/test.cpp deleted file mode 100644 index 8d96354b..00000000 --- a/include/argparse/test.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "argparse.hpp" -#include - -int main(int argc, char *argv[]) { - argparse::ArgumentParser program("test"); - program.add_argument("--foo").implicit_value(true).default_value(false); - program.add_argument("bar"); - - auto unknown_args = - program.parse_known_args({"test", "--foo", "--badger", "BAR", "spam"}); - - assert(program.get("--foo") == true); - assert(program.get("bar") == std::string{"BAR"}); - assert((unknown_args == std::vector{"--badger", "spam"})); -} diff --git a/test/test_equals_form.cpp b/test/test_equals_form.cpp index e09b664d..81c31f83 100644 --- a/test/test_equals_form.cpp +++ b/test/test_equals_form.cpp @@ -28,4 +28,12 @@ TEST_CASE("Duplicate =-named and standard" * test_suite("equals_form")) { REQUIRE(result == "value"); std::string result2{parser.get("--long")}; REQUIRE(result2 == "NO_VALUE"); +} + +TEST_CASE("Basic --value=value with nargs(2)" * test_suite("equals_form")) { + argparse::ArgumentParser parser("test"); + parser.add_argument("--long").nargs(2); + parser.parse_args({"test", "--long=value1", "value2"}); + REQUIRE((parser.get>("--long") == + std::vector{"value1", "value2"})); } \ No newline at end of file From 8c91f1a2907664e6301a3deb0db0b0d401c2a789 Mon Sep 17 00:00:00 2001 From: Pranav Date: Wed, 21 Sep 2022 09:24:17 -0500 Subject: [PATCH 3/4] Added `option=value` example to table of contents --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 814dc21a..7093f0b2 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ * [Construct a JSON object from a filename argument](#construct-a-json-object-from-a-filename-argument) * [Positional Arguments with Compound Toggle Arguments](#positional-arguments-with-compound-toggle-arguments) * [Restricting the set of values for an argument](#restricting-the-set-of-values-for-an-argument) + * [Using `option=value` syntax](#using-optionvalue-syntax) * [CMake Integration](#cmake-integration) * [Supported Toolchains](#supported-toolchains) * [Contributing](#contributing) From b2d2a585106b0ff19e9d8f18b0456a21686af5e5 Mon Sep 17 00:00:00 2001 From: Pranav Srinivas Kumar Date: Wed, 21 Sep 2022 07:25:04 -0700 Subject: [PATCH 4/4] Removed test file --- include/argparse/test | Bin 103008 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 include/argparse/test diff --git a/include/argparse/test b/include/argparse/test deleted file mode 100755 index e8d4e6599369f7b0b4506308b91b256c79ee85bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103008 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