use clap::Parser; use diesel_async::AsyncPgConnection; use dotenv::dotenv; use thulani::db; #[derive(clap::Parser)] struct Opts { #[arg(short, long)] user_id: u64, #[arg(short, long)] deleter: u64, #[arg(long)] demo_meme: bool, } async fn create_demo_meme(conn: &mut AsyncPgConnection, owner: u64) -> anyhow::Result<()> { let meta = db::Metadata::create(conn, owner).await?; let meme = db::NewMeme { title: "my new meme".to_owned(), content: Some("abc".to_owned()), metadata_id: meta.id, audio_id: None, image_id: None, }; let meme = meme.save(conn, owner).await?; log::debug!("created demo meme: {meme:#?}"); Ok(()) } #[tokio::main] pub async fn main() -> anyhow::Result<()> { thulani::log_setup::init(false).expect("initializing logging"); dotenv().ok(); let opts = Opts::parse(); let mut conn = db::connection().await?; if opts.demo_meme { create_demo_meme(&mut conn, opts.user_id).await?; } let memes_deleted = db::del_memes_by_userid(&mut conn, opts.user_id, opts.deleter).await?; log::info!("deleted memes: {memes_deleted:?}"); Ok(()) }