From 3b6ca14275108caa8a9f3ca241770c5417b308da Mon Sep 17 00:00:00 2001 From: Hayodea Hakol Date: Tue, 7 Jan 2025 14:05:23 -0400 Subject: [PATCH] CmdOpts: merge -[i|a|e] into one -s option We augmented the grammar to specify the type of device (intero, extro or actuator) so we can now collapse the 3 dev spec cmd line opts into 1 opt. --- hcore/include/opts.h | 4 +--- hcore/opts.cpp | 46 +++++++++++--------------------------------- 2 files changed, 12 insertions(+), 38 deletions(-) diff --git a/hcore/include/opts.h b/hcore/include/opts.h index cbd1967..41065ec 100644 --- a/hcore/include/opts.h +++ b/hcore/include/opts.h @@ -17,9 +17,7 @@ public: std::string getUsage() const; public: - std::vector extro; - std::vector intero; - std::vector actuator; + std::string deviceSpecs; std::vector deviceSpecFiles; bool verbose, printUsage; diff --git a/hcore/opts.cpp b/hcore/opts.cpp index 91666d9..639bcb6 100644 --- a/hcore/opts.cpp +++ b/hcore/opts.cpp @@ -6,12 +6,9 @@ #include struct option OptionParser::longOptions[] = { - {"extro", required_argument, 0, 'e'}, - {"extrospector", required_argument, 0, 'e'}, - {"intero", required_argument, 0, 'i'}, - {"interoceptor", required_argument, 0, 'i'}, - {"act", required_argument, 0, 'a'}, - {"actuator", required_argument, 0, 'a'}, + {"devicespec", required_argument, 0, 's'}, + {"spec", required_argument, 0, 's'}, + {"devspec", required_argument, 0, 's'}, {"devfile", required_argument, 0, 'd'}, {"devicefile", required_argument, 0, 'd'}, {"verbose", no_argument, 0, 'v'}, @@ -25,18 +22,15 @@ void OptionParser::parseArguments(int argc, char *argv[]) int optionIndex = 0; optind = 1; // Reset optind to 1 before parsing while ((opt = getopt_long( - argc, argv, "e:i:a:d:v?", longOptions, &optionIndex)) != -1) + argc, argv, "s:d:v?", longOptions, &optionIndex)) != -1) { switch (opt) { - case 'e': - extro.push_back(optarg); - break; - case 'i': - intero.push_back(optarg); - break; - case 'a': - actuator.push_back(optarg); + case 's': + if (!deviceSpecs.empty()) { + deviceSpecs += "||"; + } + deviceSpecs += std::string(optarg); break; case 'd': deviceSpecFiles.push_back(optarg); @@ -55,9 +49,7 @@ void OptionParser::parseArguments(int argc, char *argv[]) std::string OptionParser::getUsage() const { - return "Usage: program [-e|--extro|--extrospector ] " - "[-i|--intero|--interoceptor ] " - "[-a|--act|--actuator ] " + return "Usage: program [-s|--devicespec|--spec|--devspec ] " "[-d|--devfile|--devicefile ] " "[-v|--verbose] " "[-?|--help]"; @@ -69,23 +61,7 @@ void OptionParser::dumpOptions() const std::cout << "Verbose mode is on" << std::endl; } - std::cout << "Extro: "; - for (const auto& extro : extro) { - std::cout << extro << " "; - } - std::cout << std::endl; - - std::cout << "Intero: "; - for (const auto& intero : intero) { - std::cout << intero << " "; - } - std::cout << std::endl; - - std::cout << "Actuator: "; - for (const auto& actuator : actuator) { - std::cout << actuator << " "; - } - std::cout << std::endl; + std::cout << "Device Specs: " << deviceSpecs << std::endl; std::cout << "Device Spec Files: "; for (const auto& file : deviceSpecFiles) {