use std::{
fs::File,
path::{Path, PathBuf},
};
use clap::Parser;
use crate::{Action, Global, SolarError, ToolTrait, config::ProjConfig};
#[derive(Parser, Clone)]
pub struct Init {
#[arg(default_value = "cargobinbasic")]
project: ProjConfig,
#[arg(short, long, default_value = ".")]
destination: PathBuf,
}
impl Init {
pub fn run(&mut self) -> Result<(), SolarError> {
solar_init(&self.project, &self.destination)
}
}
pub fn solar_init(config: &ProjConfig, destination: &Path) -> Result<(), SolarError> {
Global::git_init(destination)?;
File::create(destination.join("README.md"))?;
config.get().act(&Action::INSTALL, Some(destination))
}