solar_core/subcommand/
init.rs1use std::{
2 fs::File,
3 path::{Path, PathBuf},
4};
5
6use clap::Parser;
7
8use crate::{Action, Global, SolarError, ToolTrait, config::ProjConfig};
9
10#[derive(Parser, Clone)]
11pub struct Init {
12 #[arg(default_value = "cargobinbasic")]
14 project: ProjConfig,
15
16 #[arg(short, long, default_value = ".")]
18 destination: PathBuf,
19}
20
21impl Init {
22 pub fn run(&mut self) -> Result<(), SolarError> {
23 solar_init(&self.project, &self.destination)
24 }
25}
26
27pub fn solar_init(config: &ProjConfig, destination: &Path) -> Result<(), SolarError> {
28 Global::git_init(destination)?;
30
31 File::create(destination.join("README.md"))?;
33
34 config.get().act(&Action::INSTALL, Some(destination))
36}