3#include "migration/MigrationApplication.hpp"
4#include "util/OverloadSet.hpp"
39 std::string configPath;
45 std::string configPath;
53 template <
typename ActionType>
54 requires std::is_same_v<ActionType, Run> or std::is_same_v<ActionType, Exit> or
55 std::is_same_v<ActionType, Migrate> or std::is_same_v<ActionType, VerifyConfig>
56 explicit Action(ActionType&& action) : action_(std::forward<ActionType>(action))
68 template <
typename... Processors>
70 apply(Processors&&... processors)
const
72 return std::visit(
util::OverloadSet{std::forward<Processors>(processors)...}, action_);
76 std::variant<Run, Exit, Migrate, VerifyConfig> action_;
87 parse(
int argc,
char const* argv[]);
int apply(Processors &&... processors) const
Apply a function to the action.
Definition CliArgs.hpp:70
Action(ActionType &&action)
Construct an action from a Run.
Definition CliArgs.hpp:56
Parsed command line arguments representation.
Definition CliArgs.hpp:14
static constexpr char kDefaultConfigPath[]
Default configuration path.
Definition CliArgs.hpp:19
static Action parse(int argc, char const *argv[])
Parse command line arguments.
Definition CliArgs.cpp:23
Exit action.
Definition CliArgs.hpp:33
int exitCode
Exit code.
Definition CliArgs.hpp:34
Migration action.
Definition CliArgs.hpp:38
Run action.
Definition CliArgs.hpp:27
std::string configPath
Configuration file path.
Definition CliArgs.hpp:28
bool useNgWebServer
Whether to use a ng web server.
Definition CliArgs.hpp:29
Verify Config action.
Definition CliArgs.hpp:44
The command to run for migration framework.
Definition MigrationApplication.hpp:16
Overload set for lambdas.
Definition OverloadSet.hpp:11