]> git.proxmox.com Git - rustc.git/blob - src/tools/cargo/src/bin/cargo/commands/new.rs
New upstream version 1.76.0+dfsg1
[rustc.git] / src / tools / cargo / src / bin / cargo / commands / new.rs
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>")
8 .arg(
9 Arg::new("path")
10 .value_name("PATH")
11 .action(ArgAction::Set)
12 .required(true),
13 )
14 .arg_new_opts()
15 .arg_registry("Registry to use")
16 .arg_silent_suggestion()
17 .after_help(color_print::cstr!(
18 "Run `<cyan,bold>cargo help new</>` for more detailed information.\n"
19 ))
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 }