use std::path::PathBuf;
use anyhow::{Context, Result};
#[derive(clap::Args)]
pub struct InitArgs {
#[arg(long)]
pub serve: bool,
#[arg(long)]
pub num_threads: Option<usize>,
}
pub fn run(data_dir: Option<PathBuf>, args: InitArgs) -> Result<()> {
eprintln!("Checking kernel files...");
let resolved_dir =
empyrean::download_data(data_dir.as_deref()).context("failed to resolve data directory")?;
let _ctx = empyrean::Context::from_data_dir(data_dir.as_deref())
.context("failed to download/load kernels")?;
eprintln!("Data directory: {}", resolved_dir.display());
eprintln!("All kernel files ready.");
if args.serve {
let socket_path = crate::daemon::protocol::default_socket_path();
crate::daemon::server::serve(Some(&resolved_dir), &socket_path, args.num_threads)?;
}
Ok(())
}