]>
Commit | Line | Data |
---|---|---|
0a29b90c FG |
1 | use crate::command_prelude::*; |
2 | ||
3 | use cargo::ops; | |
4 | ||
5 | pub fn cli() -> Command { | |
6 | subcommand("new") | |
7 | .about("Create a new cargo package at <path>") | |
ed00b5ec FG |
8 | .arg( |
9 | Arg::new("path") | |
10 | .value_name("PATH") | |
11 | .action(ArgAction::Set) | |
12 | .required(true), | |
13 | ) | |
0a29b90c | 14 | .arg_new_opts() |
781aab86 | 15 | .arg_registry("Registry to use") |
add651ee | 16 | .arg_quiet() |
781aab86 FG |
17 | .after_help(color_print::cstr!( |
18 | "Run `<cyan,bold>cargo help new</>` for more detailed information.\n" | |
19 | )) | |
0a29b90c FG |
20 | } |
21 | ||
22 | pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { | |
23 | let opts = args.new_options(config)?; | |
24 | ||
25 | ops::new(&opts, config)?; | |
26 | let path = args.get_one::<String>("path").unwrap(); | |
27 | let package_name = if let Some(name) = args.get_one::<String>("name") { | |
28 | name | |
29 | } else { | |
30 | path | |
31 | }; | |
32 | config.shell().status( | |
33 | "Created", | |
34 | format!("{} `{}` package", opts.kind, package_name), | |
35 | )?; | |
36 | Ok(()) | |
37 | } |