feat: initial commit

This commit is contained in:
nullishamy 2025-04-10 19:40:50 +01:00
commit a4a1ef0745
Signed by: amy
SSH key fingerprint: SHA256:WmV0uk6WgAQvDJlM8Ld4mFPHZo02CLXXP5VkwQ5xtyk
19 changed files with 4436 additions and 0 deletions

11
ferri-cli/Cargo.toml Normal file
View file

@ -0,0 +1,11 @@
[package]
name = "cli"
version = "0.1.0"
edition = "2024"
[dependencies]
main = { path = "../ferri-main/" }
server = { path = "../ferri-server" }
rocket = { workspace = true }
sqlx = { workspace = true }
clap = { version = "4", features = ["derive"] }

41
ferri-cli/src/main.rs Normal file
View file

@ -0,0 +1,41 @@
use server::launch;
extern crate rocket;
use sqlx::sqlite::SqlitePool;
use std::env;
use clap::Parser;
#[derive(Parser)]
#[command(version, about, long_about = None)]
struct Cli {
#[arg(short, long)]
init: bool
}
#[rocket::main]
async fn main() {
let cli = Cli::parse();
if cli.init {
// Seed DB
let pool = SqlitePool::connect(&env::var("DATABASE_URL").unwrap()).await.unwrap();
let mut conn = pool.acquire().await.unwrap();
sqlx::query!(r#"
INSERT INTO actor (id, inbox, outbox)
VALUES (?1, ?2, ?3)
"#, "https://ferri.amy.mov/users/amy", "https://ferri.amy.mov/users/amy/inbox", "https://ferri.amy.mov/users/amy/outbox")
.execute(&mut *conn)
.await.unwrap();
sqlx::query!(r#"
INSERT INTO user (id, actor_id, display_name)
VALUES (?1, ?2, ?3)
"#, "amy", "https://ferri.amy.mov/users/amy", "amy")
.execute(&mut *conn)
.await.unwrap();
} else {
let _ = launch().launch().await;
}
}