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::cli::{Opts, SubCommand};
|
|
|
|
use mitra::config::parse_config;
|
2022-01-05 22:52:17 +00:00
|
|
|
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;
|
2022-06-20 20:26:43 +00:00
|
|
|
|
2021-04-09 00:22:17 +00:00
|
|
|
#[tokio::main]
|
|
|
|
async fn main() {
|
|
|
|
let opts: Opts = Opts::parse();
|
|
|
|
|
|
|
|
match opts.subcmd {
|
2021-11-18 00:22:41 +00:00
|
|
|
SubCommand::GenerateRsaKey(cmd) => cmd.execute(),
|
2022-08-12 22:38:41 +00:00
|
|
|
SubCommand::GenerateEthereumAddress(cmd) => cmd.execute(),
|
2021-11-15 21:43:58 +00:00
|
|
|
subcmd => {
|
|
|
|
// Other commands require initialized app
|
2022-06-20 20:26:43 +00:00
|
|
|
let config = parse_config();
|
2021-12-21 00:14:12 +00:00
|
|
|
configure_logger(config.log_level);
|
2022-05-04 19:44:38 +00:00
|
|
|
log::info!("config loaded from {}", config.config_path);
|
2022-01-05 22:52:17 +00:00
|
|
|
let db_config = config.database_url.parse().unwrap();
|
|
|
|
let db_client = &mut create_database_client(&db_config).await;
|
|
|
|
apply_migrations(db_client).await;
|
2021-11-15 21:43:58 +00:00
|
|
|
|
|
|
|
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-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(),
|
|
|
|
SubCommand::DeleteExtraneousPosts(cmd) => cmd.execute(&config, db_client).await.unwrap(),
|
|
|
|
SubCommand::DeleteUnusedAttachments(cmd) => cmd.execute(&config, db_client).await.unwrap(),
|
2022-05-06 23:53:52 +00:00
|
|
|
SubCommand::DeleteOrphanedFiles(cmd) => cmd.execute(&config, db_client).await.unwrap(),
|
2022-07-25 17:30:22 +00:00
|
|
|
SubCommand::UpdateCurrentBlock(cmd) => cmd.execute(&config, db_client).await.unwrap(),
|
2022-08-15 23:56:06 +00:00
|
|
|
SubCommand::CreateMoneroWallet(cmd) => cmd.execute(&config).await.unwrap(),
|
2021-11-15 21:43:58 +00:00
|
|
|
_ => panic!(),
|
|
|
|
};
|
|
|
|
},
|
2021-04-09 00:22:17 +00:00
|
|
|
};
|
|
|
|
}
|