use crate::ops::forc_init;
use clap::Parser;
use forc_util::ForcResult;
forc_util::cli_examples! {
crate::cli::Opt {
[Initialize a new Forc project => "forc init --path <PATH>"]
[Initialize a new Forc project as workspace => "forc init --path <PATH> --workspace"]
[Initialize a new Forc project with a predicate => "forc init --path <PATH> --predicate"]
[Initialize a new Forc library project => "forc init --path <PATH> --library"]
}
}
#[derive(Debug, Parser)]
#[clap(bin_name = "forc init", version, after_help = help())]
pub struct Command {
#[clap(long)]
pub path: Option<String>,
#[clap(long)]
pub contract: bool,
#[clap(long)]
pub script: bool,
#[clap(long)]
pub predicate: bool,
#[clap(long)]
pub library: bool,
#[clap(long)]
pub workspace: bool,
#[clap(long)]
pub name: Option<String>,
}
pub(crate) fn exec(command: Command) -> ForcResult<()> {
forc_init::init(command)?;
Ok(())
}