use std::path::Path;
use dbmd_core::linkmd;
use crate::cli::MirrorArgs;
use crate::context::Context;
use crate::error::CliResult;
pub fn run(ctx: &Context, args: &MirrorArgs) -> CliResult {
let brain = args.brain.trim().trim_start_matches('@');
let cfg = linkmd::hub_config(None, Path::new("."))?;
let report = linkmd::mirror(&cfg, brain, Path::new(&args.dir))?;
if ctx.json {
println!(
"{}",
serde_json::to_string_pretty(&report).expect("serialize")
);
} else {
println!(
"mirrored {}: {} entries verified, {} files, pinned {}",
report.brain, report.entries, report.files, report.pinned
);
}
Ok(())
}