diff options
author | andrew stalin <andrew.stalin@gmail.com> | 2025-04-07 16:02:40 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-07 16:02:40 +0700 |
commit | c172b3e734a87bff367688b31811b81d1cc9b91c (patch) | |
tree | 83cc2245ed6e68601ba15f7a517ca45af34fb718 | |
parent | 3f399a582989c4ccb0efa88a57db785a77e2fea7 (diff) | |
download | ydb-c172b3e734a87bff367688b31811b81d1cc9b91c.tar.gz |
Moved the parameter throw-on-parse-error from the options (#16826)
4 files changed, 9 insertions, 7 deletions
diff --git a/ydb/public/lib/ydb_cli/common/client_command_options.cpp b/ydb/public/lib/ydb_cli/common/client_command_options.cpp index 6b4581c622..d6932f4d80 100644 --- a/ydb/public/lib/ydb_cli/common/client_command_options.cpp +++ b/ydb/public/lib/ydb_cli/common/client_command_options.cpp @@ -417,9 +417,9 @@ TAnonymousAuthMethodOption::TAnonymousAuthMethodOption(TClientCommandOptions* cl } -TOptionsParseResult::TOptionsParseResult(const TClientCommandOptions* options, int argc, const char** argv) +TOptionsParseResult::TOptionsParseResult(const TClientCommandOptions* options, int argc, const char** argv, bool throwOnParseError) : ClientOptions(options) - , ParseFromCommandLineResult(&options->GetOpts(), argc, argv) + , ParseFromCommandLineResult(&options->GetOpts(), argc, argv, throwOnParseError) { for (const auto& clientOption : ClientOptions->ClientOpts) { if (const auto* optResult = ParseFromCommandLineResult.FindOptParseResult(&clientOption->GetOpt())) { diff --git a/ydb/public/lib/ydb_cli/common/client_command_options.h b/ydb/public/lib/ydb_cli/common/client_command_options.h index 22706ae279..03c6d0ac77 100644 --- a/ydb/public/lib/ydb_cli/common/client_command_options.h +++ b/ydb/public/lib/ydb_cli/common/client_command_options.h @@ -353,8 +353,8 @@ private: class TCommandOptsParseResult: public NLastGetopt::TOptsParseResult { public: - TCommandOptsParseResult(const NLastGetopt::TOpts* options, int argc, const char* argv[]) - : ThrowOnParseError(options->HasLongOption("throw-on-parse-error")) { + TCommandOptsParseResult(const NLastGetopt::TOpts* options, int argc, const char* argv[], bool throwOnParseError = false) + : ThrowOnParseError(throwOnParseError) { Init(options, argc, argv); } @@ -377,7 +377,7 @@ public: using TConnectionParamsLogger = std::function<void(const TString& /*paramName*/, const TString& /*value*/, const TString& /*sourceText*/)>; public: - TOptionsParseResult(const TClientCommandOptions* options, int argc, const char** argv); + TOptionsParseResult(const TClientCommandOptions* options, int argc, const char** argv, bool throwOnParseError = false); // Parses from profile and env. Returns erros if they occur during parsing std::vector<TString> ParseFromProfilesAndEnv(std::shared_ptr<IProfile> explicitProfile, std::shared_ptr<IProfile> activeProfile); diff --git a/ydb/public/lib/ydb_cli/common/command.cpp b/ydb/public/lib/ydb_cli/common/command.cpp index 830d14c8df..93053be7bf 100644 --- a/ydb/public/lib/ydb_cli/common/command.cpp +++ b/ydb/public/lib/ydb_cli/common/command.cpp @@ -161,7 +161,7 @@ std::pair<int, const char**> TClientCommand::TOptsParseOneLevelResult::GetArgv(T } TClientCommand::TOptsParseOneLevelResult::TOptsParseOneLevelResult(TConfig& config, std::pair<int, const char**> argv) - : TOptionsParseResult(config.Opts, argv.first, argv.second) + : TOptionsParseResult(config.Opts, argv.first, argv.second, config.ThrowOnOptsParseError) { } @@ -236,7 +236,7 @@ int TClientCommand::Process(TConfig& config) { } void TClientCommand::SaveParseResult(TConfig& config) { - ParseResult = std::make_shared<TOptionsParseResult>(config.Opts, config.ArgC, (const char**)config.ArgV); + ParseResult = std::make_shared<TOptionsParseResult>(config.Opts, config.ArgC, (const char**)config.ArgV, config.ThrowOnOptsParseError); // Parse options from env and apply default parameters. // Parsing from profiles is only supported at high level commands and occure in ExtractParams() stage. diff --git a/ydb/public/lib/ydb_cli/common/command.h b/ydb/public/lib/ydb_cli/common/command.h index cb5318ca77..6c7fe123b9 100644 --- a/ydb/public/lib/ydb_cli/common/command.h +++ b/ydb/public/lib/ydb_cli/common/command.h @@ -170,6 +170,8 @@ public: TCredentialsGetter CredentialsGetter; std::shared_ptr<ICredentialsProviderFactory> SingletonCredentialsProviderFactory = nullptr; + bool ThrowOnOptsParseError = false; + TConfig(int argc, char** argv) : ArgC(argc) , ArgV(argv) |