1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use super::RapidCommand;
use crate::cli::{logo, Config};
use clap::{arg, value_parser, ArgAction, ArgMatches, Command};
use std::path::PathBuf;
pub struct New {}
impl RapidCommand for New {
fn cmd() -> clap::Command {
Command::new("new")
.about("Creates a new rapid project at the current working directory!")
.arg(
arg!(
-full --fullstack "Scaffolds a fullstack rapid project!"
)
.required(false)
.action(ArgAction::SetTrue)
.value_parser(value_parser!(PathBuf)),
)
.arg(
arg!(
-server --server "Scaffolds a server-side only rapid project!"
)
.required(false)
.action(ArgAction::SetTrue)
.value_parser(value_parser!(PathBuf)),
)
}
fn execute(_: &Config, args: &ArgMatches) -> Result<(), crate::cli::CliError<'static>> {
println!("{}", logo());
println!("> Creating new Rapid project in current working dir!");
println!("{:?}", args.get_one::<PathBuf>("fullstack"));
Ok(())
}
}