fedimovies/mitra-cli/src/main.rs

49 lines
2.5 KiB
Rust
Raw Normal View History

2022-04-10 19:51:03 +00:00
use clap::Parser;
2021-04-09 00:22:17 +00:00
2022-08-12 22:38:41 +00:00
use mitra::config::parse_config;
use mitra::database::create_database_client;
2021-04-09 00:22:17 +00:00
use mitra::database::migrate::apply_migrations;
use mitra::logger::configure_logger;
mod cli;
use cli::{Opts, SubCommand};
2021-04-09 00:22:17 +00:00
#[tokio::main]
async fn main() {
let opts: Opts = Opts::parse();
match opts.subcmd {
SubCommand::GenerateRsaKey(cmd) => cmd.execute(),
2022-08-12 22:38:41 +00:00
SubCommand::GenerateEthereumAddress(cmd) => cmd.execute(),
subcmd => {
// Other commands require initialized app
let config = parse_config();
configure_logger(config.log_level);
log::info!("config loaded from {}", config.config_path);
let db_config = config.database_url.parse().unwrap();
let db_client = &mut create_database_client(&db_config).await;
apply_migrations(db_client).await;
match subcmd {
2022-08-12 22:38:41 +00:00
SubCommand::GenerateInviteCode(cmd) => cmd.execute(db_client).await.unwrap(),
SubCommand::ListInviteCodes(cmd) => cmd.execute(db_client).await.unwrap(),
2022-11-10 23:54:01 +00:00
SubCommand::SetPassword(cmd) => cmd.execute(db_client).await.unwrap(),
2022-07-12 19:42:30 +00:00
SubCommand::RefetchActor(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2022-08-12 22:38:41 +00:00
SubCommand::DeleteProfile(cmd) => cmd.execute(&config, db_client).await.unwrap(),
SubCommand::DeletePost(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2023-01-16 22:52:22 +00:00
SubCommand::DeleteEmoji(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2022-08-12 22:38:41 +00:00
SubCommand::DeleteExtraneousPosts(cmd) => cmd.execute(&config, db_client).await.unwrap(),
SubCommand::DeleteUnusedAttachments(cmd) => cmd.execute(&config, db_client).await.unwrap(),
SubCommand::DeleteOrphanedFiles(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2022-11-17 21:40:07 +00:00
SubCommand::DeleteEmptyProfiles(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2023-01-17 00:09:09 +00:00
SubCommand::ImportEmoji(cmd) => cmd.execute(&config, db_client).await.unwrap(),
SubCommand::UpdateCurrentBlock(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2022-09-07 20:23:54 +00:00
SubCommand::ResetSubscriptions(cmd) => cmd.execute(&config, db_client).await.unwrap(),
2022-08-15 23:56:06 +00:00
SubCommand::CreateMoneroWallet(cmd) => cmd.execute(&config).await.unwrap(),
2022-11-25 19:11:50 +00:00
SubCommand::CheckExpiredInvoice(cmd) => cmd.execute(&config, db_client).await.unwrap(),
_ => panic!(),
};
},
2021-04-09 00:22:17 +00:00
};
}