use anyhow::Result;
use firecloud_crypto::KeyPair;
use std::path::PathBuf;
use tracing::info;
pub async fn run(data_dir: PathBuf) -> Result<()> {
info!("Initializing FireCloud...");
std::fs::create_dir_all(&data_dir)?;
let keypair = KeyPair::generate();
let public_key = keypair.public_key_bytes();
let identity_path = data_dir.join("identity.key");
if identity_path.exists() {
info!("⚠️ Identity already exists at {}", identity_path.display());
info!(" Delete the file to generate a new identity.");
} else {
std::fs::write(&identity_path, keypair.to_bytes())?;
info!("✅ Identity created: {}", identity_path.display());
}
info!("Public key: {}", hex::encode(public_key));
info!("Data directory: {}", data_dir.display());
std::fs::create_dir_all(data_dir.join("chunks"))?;
std::fs::create_dir_all(data_dir.join("manifests"))?;
info!("✅ Initialization complete!");
Ok(())
}