34 lines
599 B
Rust
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
|
|
}
|