mod api; mod cli; pub mod db; mod error; mod repo; use clap::Parser; pub use error::{Result, ServerError}; use repo::RepoGroupManager; use sea_orm::DatabaseConnection; use std::path::PathBuf; use std::sync::{Arc, RwLock}; #[derive(Clone)] pub struct Config { data_dir: PathBuf, repo_dir: PathBuf, pkg_dir: PathBuf, api_key: String, } #[derive(Clone)] pub struct Global { config: Config, repo_manager: Arc>, db: DatabaseConnection, } #[tokio::main] async fn main() -> crate::Result<()> { let cli = cli::Cli::parse(); cli.run().await }