use clap::Command; mod subcommands; mod commands; mod utils; mod services; mod global; mod store; fn main() { let app = Command::new("Nextsync") .version("1.0") .author("grimhilt") .about("A git-line command line tool to interact with nextcloud") .subcommands([ subcommands::clone::create(), subcommands::init::create(), subcommands::status::create(), subcommands::add::create(), subcommands::push::create(), subcommands::reset::create(), subcommands::remote::create(), subcommands::config::create(), subcommands::remote_diff::create(), subcommands::pull::create(), subcommands::credential::create(), ]); // .setting(clap::AppSettings::SubcommandRequiredElseHelp); let matches = app.get_matches(); match matches.subcommand() { Some(("init", args)) => subcommands::init::handler(args), Some(("status", args)) => subcommands::status::handler(args), Some(("add", args)) => subcommands::add::handler(args), Some(("reset", _)) => commands::reset::reset(), Some(("clone", args)) => subcommands::clone::handler(args), Some(("push", _)) => commands::push::push(), Some(("config", args)) => subcommands::config::handler(args), Some(("remote-diff", args)) => subcommands::remote_diff::handler(args), Some(("pull", args)) => subcommands::pull::handler(args), Some(("remote", args)) => subcommands::remote::handler(args), Some(("credential", args)) => subcommands::credential::handler(args), Some((_, _)) => {}, None => {}, }; }