use crate::networks::{generate_actor_bundle, get_actor_bundles_metadata};
use std::path::PathBuf;
#[derive(Debug, clap::Subcommand)]
pub enum StateMigrationCommands {
ActorBundle {
#[arg(default_value = "actor_bundles.car.zst")]
output: PathBuf,
},
GenerateActorsMetadata,
}
impl StateMigrationCommands {
pub async fn run(self) -> anyhow::Result<()> {
match self {
Self::ActorBundle { output } => {
generate_actor_bundle(&output).await?;
println!("Wrote the actors bundle to {}", output.display());
Ok(())
}
Self::GenerateActorsMetadata => {
let metadata = get_actor_bundles_metadata().await?;
let metadata_json = serde_json::to_string_pretty(&metadata)?;
println!("{}", metadata_json);
Ok(())
}
}
}
}