--- a/src/CLIParser.h Tue Mar 01 00:49:46 2022 +0100
+++ b/src/CLIParser.h Fri Mar 04 19:43:16 2022 +0100
@@ -37,9 +37,19 @@
else throw relpipe::cli::RelpipeCLIException(L"Missing CLI argument" + (i > 0 ? (L" after " + arguments[i - 1]) : L""), relpipe::cli::CLI::EXIT_CODE_BAD_CLI_ARGUMENTS);
}
+ /**
+ * TODO: use a common method
+ */
+ bool parseBoolean(const relpipe::common::type::StringX& value) {
+ if (value == L"true") return true;
+ else if (value == L"false") return false;
+ else throw relpipe::cli::RelpipeCLIException(L"Unable to parse boolean value: " + value + L" (expecting true or false)", relpipe::cli::CLI::EXIT_CODE_BAD_CLI_ARGUMENTS);
+ }
+
public:
static const relpipe::writer::string_t OPTION_RELATION;
+ static const relpipe::writer::string_t OPTION_UNLINK_ON_CLOSE;
static const relpipe::writer::string_t OPTION_QUEUE;
static const relpipe::writer::string_t OPTION_MESSAGE_COUNT;
@@ -51,6 +61,8 @@
if (option == OPTION_RELATION) {
c.relation = readNext(arguments, i);
+ } else if (option == OPTION_UNLINK_ON_CLOSE) {
+ c.unlinkOnClose = parseBoolean(readNext(arguments, i));
} else if (option == OPTION_QUEUE) {
c.queue = readNext(arguments, i);
} else if (option == OPTION_MESSAGE_COUNT) {
@@ -66,6 +78,7 @@
};
const relpipe::writer::string_t CLIParser::OPTION_RELATION = L"--relation";
+const relpipe::writer::string_t CLIParser::OPTION_UNLINK_ON_CLOSE = L"--unlink-on-close";
const relpipe::writer::string_t CLIParser::OPTION_QUEUE = L"--queue";
const relpipe::writer::string_t CLIParser::OPTION_MESSAGE_COUNT = L"--message-count";