2025-08-31 22:40:37 -05:00
|
|
|
#include "mfm.hpp"
|
|
|
|
|
|
|
|
|
|
#include "mfm_options.hpp"
|
|
|
|
|
|
|
|
|
|
#include "CLI11.hpp"
|
|
|
|
|
|
|
|
|
|
static
|
|
|
|
|
void
|
|
|
|
|
_setup_argparser_dup(CLI::App &app_,
|
|
|
|
|
mfm::Opts::Dup &opts_)
|
|
|
|
|
{
|
2025-09-01 00:06:04 -05:00
|
|
|
CLI::App *subcmd;
|
2025-08-31 22:40:37 -05:00
|
|
|
|
2025-09-01 00:06:04 -05:00
|
|
|
subcmd = app_.add_subcommand("dup",
|
|
|
|
|
"duplicate files");
|
2025-09-01 00:07:50 -05:00
|
|
|
subcmd->add_option("path",opts_.dirpath)
|
|
|
|
|
->description("")
|
|
|
|
|
->type_name("PATH")
|
|
|
|
|
->check(CLI::ExistingPath)
|
|
|
|
|
->required();
|
2025-08-31 22:40:37 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static
|
|
|
|
|
void
|
|
|
|
|
_setup_argparser_watch(CLI::App &app_,
|
|
|
|
|
mfm::Opts::Watch &opts_)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static
|
|
|
|
|
void
|
|
|
|
|
_setup_argparser_migrate(CLI::App &app_,
|
|
|
|
|
mfm::Opts::Migrate &opts_)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static
|
|
|
|
|
void
|
|
|
|
|
_setup_argparser_rebalance(CLI::App &app_,
|
|
|
|
|
mfm::Opts::Rebalance &opts_)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static
|
|
|
|
|
void
|
|
|
|
|
_setup_argparser(CLI::App &app_,
|
|
|
|
|
mfm::Opts &opts_)
|
|
|
|
|
{
|
|
|
|
|
_setup_argparser_dup(app_,opts_.dup);
|
|
|
|
|
_setup_argparser_migrate(app_,opts_.migrate);
|
|
|
|
|
_setup_argparser_rebalance(app_,opts_.rebalance);
|
|
|
|
|
_setup_argparser_watch(app_,opts_.watch);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
mfm::main(int argc_,
|
|
|
|
|
char **argv_)
|
|
|
|
|
{
|
|
|
|
|
CLI::App app;
|
|
|
|
|
mfm::Opts opts;
|
|
|
|
|
|
|
|
|
|
app.description("mfm: mergerfs filesystem manager");
|
|
|
|
|
app.name("USAGE:: mfm");
|
|
|
|
|
|
|
|
|
|
::_setup_argparser(app,opts);
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
app.parse(argc_,argv_);
|
|
|
|
|
}
|
|
|
|
|
catch(const CLI::ParseError &e_)
|
|
|
|
|
{
|
|
|
|
|
return app.exit(e_);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|