rieter/server/src/main.rs

34 lines
599 B
Rust

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<RwLock<RepoGroupManager>>,
db: DatabaseConnection,
}
#[tokio::main]
async fn main() -> crate::Result<()> {
let cli = cli::Cli::parse();
cli.run().await
}