cartulary 0.3.0-alpha.1

The knowledge layer of your project — decisions, issues, docs, all in one place.
Documentation
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);
        }
    }
}