summaryrefslogtreecommitdiff
path: root/src/other_tools/just_mr/cli.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/other_tools/just_mr/cli.hpp')
-rw-r--r--src/other_tools/just_mr/cli.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/other_tools/just_mr/cli.hpp b/src/other_tools/just_mr/cli.hpp
index c33d30d0..3d7a8980 100644
--- a/src/other_tools/just_mr/cli.hpp
+++ b/src/other_tools/just_mr/cli.hpp
@@ -89,6 +89,28 @@ struct MultiRepoRemoteAuthArguments {
std::optional<std::filesystem::path> tls_client_key{std::nullopt};
};
+enum class SubCommand {
+ kUnknown,
+ kMRVersion,
+ kFetch,
+ kUpdate,
+ kSetup,
+ kSetupEnv,
+ kJustDo,
+ kJustSubCmd
+};
+
+struct CommandLineArguments {
+ SubCommand cmd{SubCommand::kUnknown};
+ MultiRepoCommonArguments common;
+ MultiRepoLogArguments log;
+ MultiRepoSetupArguments setup;
+ MultiRepoFetchArguments fetch;
+ MultiRepoUpdateArguments update;
+ MultiRepoJustSubCmdsArguments just_cmd;
+ MultiRepoRemoteAuthArguments auth;
+};
+
static inline void SetupMultiRepoCommonArguments(
gsl::not_null<CLI::App*> const& app,
gsl::not_null<MultiRepoCommonArguments*> const& clargs) {