}
}
+ fn index_from_args(config: &Config, args: &ArgMatches) -> CargoResult<Option<String>> {
+ // TODO: Deprecated
+ // remove once it has been decided --host can be removed
+ // We may instead want to repurpose the host flag, as
+ // mentioned in this issue
+ // https://github.com/rust-lang/cargo/issues/4208
+ let msg = "The flag '--host' is no longer valid.
+
+Previous versions of Cargo accepted this flag, but it is being
+deprecated. The flag is being renamed to 'index', as the flag
+wants the location of the index to which to publish. Please
+use '--index' instead.
+
+This will soon become a hard error, so it's either recommended
+to update to a fixed version or contact the upstream maintainer
+about this warning.";
+
+ let index = match args.value_of("host") {
+ Some(host) => {
+ config.shell().warn(&msg)?;
+ Some(host.to_string())
+ }
+ None => args.value_of("index").map(|s| s.to_string())
+ };
+ Ok(index)
+ }
+
config_from_args(config, &args)?;
match args.subcommand() {
("bench", Some(args)) => {
("publish", Some(args)) => {
let registry = registry_from_args(config, args)?;
let ws = workspace_from_args(config, args)?;
-
- // TODO: Deprecated
- // remove once it has been decided --host can be removed
- // We may instead want to repurpose the host flag, as
- // mentioned in this issue
- // https://github.com/rust-lang/cargo/issues/4208
- let msg = "The flag '--host' is no longer valid.
-
-Previous versions of Cargo accepted this flag, but it is being
-deprecated. The flag is being renamed to 'index', as the flag
-wants the location of the index to which to publish. Please
-use '--index' instead.
-
-This will soon become a hard error, so it's either recommended
-to update to a fixed version or contact the upstream maintainer
-about this warning.";
-
- let index = match args.value_of("host") {
- Some(host) => {
- config.shell().warn(&msg)?;
- Some(host.to_string())
- }
- None => args.value_of("index").map(|s| s.to_string())
- };
+ let index = index_from_args(config, args)?;
ops::publish(&ws, &ops::PublishOpts {
config,
.value_name("NAME")
)
}
+
+ fn arg_index(self) -> Self {
+ self
+ ._arg(
+ opt("index", "Registry index to upload the package to")
+ .value_name("INDEX")
+ )
+ ._arg(
+ opt("host", "DEPRECATED, renamed to '--index'")
+ .value_name("HOST")
+ .hidden(true)
+ )
+ }
}
impl CommonArgs for App {
pub fn cli() -> App {
subcommand("publish")
.about("Upload a package to the registry")
- .arg(
- opt("index", "Registry index to upload the package to")
- .value_name("INDEX")
- )
- .arg(
- opt("host", "DEPRECATED, renamed to '--index'")
- .value_name("HOST")
- .hidden(true)
- )
+ .arg_index()
.arg(opt("token", "Token to use when uploading").value_name("TOKEN"))
.arg(opt("no-verify", "Don't verify the contents by building them"))
.arg(opt("allow-dirty", "Allow dirty working directories to be packaged"))