From 1110808a9d39d4b808aef724c861a2e1a38d2a69 Mon Sep 17 00:00:00 2001
From: Devtools Arcadia <arcadia-devtools@yandex-team.ru>
Date: Mon, 7 Feb 2022 18:08:42 +0300
Subject: intermediate changes ref:cde9a383711a11544ce7e107a78147fb96cc4029

---
 .../cpp/getopt/small/last_getopt_easy_setup.cpp    | 47 ++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 library/cpp/getopt/small/last_getopt_easy_setup.cpp

(limited to 'library/cpp/getopt/small/last_getopt_easy_setup.cpp')

diff --git a/library/cpp/getopt/small/last_getopt_easy_setup.cpp b/library/cpp/getopt/small/last_getopt_easy_setup.cpp
new file mode 100644
index 0000000000..c87dedf95e
--- /dev/null
+++ b/library/cpp/getopt/small/last_getopt_easy_setup.cpp
@@ -0,0 +1,47 @@
+#include "last_getopt_easy_setup.h"
+
+namespace NLastGetopt {
+    TEasySetup::TEasySetup(const TStringBuf& optstring)
+        : TOpts(optstring)
+    {
+        AddHelpOption();
+    }
+
+    TOpt& TEasySetup::AdjustParam(const char* longName, const char* help, const char* argName, bool required) {
+        Y_ASSERT(longName);
+        TOpt& o = AddLongOption(longName);
+        if (help) {
+            o.Help(help);
+        }
+        if (argName) {
+            o.RequiredArgument(argName);
+        } else {
+            o.HasArg(NO_ARGUMENT);
+        }
+        if (required) {
+            o.Required();
+        }
+        return o;
+    }
+
+    TEasySetup& TEasySetup::operator()(char shortName, const char* longName, const char* help, bool required) {
+        AdjustParam(longName, help, nullptr, required).AddShortName(shortName);
+        return *this;
+    }
+
+    TEasySetup& TEasySetup::operator()(char shortName, const char* longName, const char* argName, const char* help, bool required) {
+        AdjustParam(longName, help, argName, required).AddShortName(shortName);
+        return *this;
+    }
+
+    TEasySetup& TEasySetup::operator()(const char* longName, const char* help, bool required) {
+        AdjustParam(longName, help, nullptr, required);
+        return *this;
+    }
+
+    TEasySetup& TEasySetup::operator()(const char* longName, const char* argName, const char* help, bool required) {
+        AdjustParam(longName, help, argName, required);
+        return *this;
+    }
+
+}
-- 
cgit v1.2.3