use std::path::Path;
use crate::domain::usecases::init::init_workspace;
use crate::infra::driven::fs::init::FsWorkspaceInitializer;
use crate::infra::driving::cli::errors::{die1, CliError};
use crate::infra::driving::cli::OutputFormat;
use super::super::theme;
pub(in super::super) fn execute_init(root_dir: &Path, output_fmt: OutputFormat) {
let initializer = FsWorkspaceInitializer {
root: root_dir.to_path_buf(),
};
match init_workspace(&initializer) {
Ok(path) => println!(
"{}",
theme::success(&format!(
"Initialized cartulary workspace: {}",
path.display()
))
),
Err(e) => {
die1(CliError::new(e.to_string()).kind("io"), output_fmt);
}
}
}