]> git.proxmox.com Git - rustc.git/blame - src/tools/cargo/src/bin/cargo/commands/new.rs
New upstream version 1.75.0+dfsg1
[rustc.git] / src / tools / cargo / src / bin / cargo / commands / new.rs
CommitLineData
0a29b90c
FG
1use crate::command_prelude::*;
2
3use cargo::ops;
4
5pub 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
22pub 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}