Files
nix_builder/src/main.rs

43 lines
1.0 KiB
Rust
Raw Normal View History

use std::process::ExitCode;
use clap::Parser;
use self::cli::parameters::Cli;
use self::cli::parameters::Commands;
use self::command::build::run_build;
use self::command::daemon::start_daemon;
use self::error::CustomError;
use self::init_tracing::init_telemetry;
use self::init_tracing::shutdown_telemetry;
mod cli;
mod command;
mod config;
2026-02-14 22:15:09 -05:00
mod database;
mod error;
2026-02-14 16:00:37 -05:00
mod fs_util;
mod git_util;
mod init_tracing;
2026-02-14 19:20:52 -05:00
mod nix_util;
2026-02-14 22:15:09 -05:00
pub(crate) type Result<T> = std::result::Result<T, CustomError>;
fn main() -> Result<ExitCode> {
let rt = tokio::runtime::Runtime::new()?;
rt.block_on(async { main_body().await })
}
2026-02-14 22:15:09 -05:00
async fn main_body() -> Result<ExitCode> {
init_telemetry().expect("Telemetry should initialize successfully.");
let args = Cli::parse();
match args.command {
Commands::Build(args) => {
run_build(args).await?;
}
Commands::Daemon(args) => {
start_daemon(args).await?;
}
};
shutdown_telemetry().expect("Telemetry should shutdown successfully.");
Ok(ExitCode::SUCCESS)
}