use cargo::ops;
use cargo::core::{SourceId, Source};
use cargo::sources::RegistrySource;
-use cargo::util::{CliResult, CargoResultExt, Config};
+use cargo::util::{CargoError, CliResult, CargoResultExt, Config};
#[derive(Deserialize)]
pub struct Options {
options.flag_frozen,
options.flag_locked,
&options.flag_z)?;
+
+ if options.flag_registry.is_some() && !config.cli_unstable().unstable_options {
+ return Err(CargoError::from("registry option is an unstable feature and requires -Zunstable-options to use.").into());
+ }
+
let token = match options.arg_token {
Some(token) => token,
None => {
use cargo::ops;
-use cargo::util::{CliResult, Config};
+use cargo::util::{CargoError, CliResult, Config};
#[derive(Deserialize)]
pub struct Options {
list: options.flag_list,
registry: options.flag_registry,
};
+
+ if opts.registry.is_some() && !config.cli_unstable().unstable_options {
+ return Err(CargoError::from("registry option is an unstable feature and requires -Zunstable-options to use.").into());
+ }
+
ops::modify_owners(config, &opts)?;
Ok(())
}
use cargo::core::Workspace;
use cargo::ops;
-use cargo::util::{CliResult, Config};
+use cargo::util::{CargoError, CliResult, Config};
use cargo::util::important_paths::find_root_manifest_for_wd;
#[derive(Deserialize)]
..
} = options;
+ if registry.is_some() && !config.cli_unstable().unstable_options {
+ return Err(CargoError::from("registry option is an unstable feature and requires -Zunstable-options to use.").into());
+ }
// TODO: Deprecated
// remove once it has been decided --host can be removed
use cargo::ops;
-use cargo::util::{CliResult, Config};
+use cargo::util::{CargoError, CliResult, Config};
use std::cmp;
..
} = options;
+ if registry.is_some() && !config.cli_unstable().unstable_options {
+ return Err(CargoError::from("registry option is an unstable feature and requires -Zunstable-options to use.").into());
+ }
+
// TODO: Depricated
// remove once it has been decided --host can be safely removed
// We may instead want to repurpose the host flag, as
use cargo::ops;
-use cargo::util::{CliResult, Config};
+use cargo::util::{CargoError, CliResult, Config};
#[derive(Deserialize)]
pub struct Options {
options.flag_frozen,
options.flag_locked,
&options.flag_z)?;
+
+ if options.flag_registry.is_some() && !config.cli_unstable().unstable_options {
+ return Err(CargoError::from("registry option is an unstable feature and requires -Zunstable-options to use.").into());
+ }
+
ops::yank(config,
options.arg_crate,
options.flag_vers,
#[derive(Default, Debug)]
pub struct CliUnstable {
pub print_im_a_teapot: bool,
+ pub unstable_options: bool,
}
impl CliUnstable {
match k {
"print-im-a-teapot" => self.print_im_a_teapot = parse_bool(v)?,
+ "unstable-options" => self.unstable_options = true,
_ => bail!("unknown `-Z` flag specified: {}", k),
}
-#[macro_use]
extern crate cargotest;
extern crate hamcrest;
// Now perform the actual publish
assert_that(p.cargo("publish").masquerade_as_nightly_cargo()
- .arg("--registry").arg("alternative"),
+ .arg("--registry").arg("alternative").arg("-Zunstable-options"),
execs().with_status(101));
}
Package::new("bar", "0.0.1").alternative(true).publish();
// Login so that we have the token available
- assert_that(p.cargo("login")
- .arg("--registry").arg("alternative").arg("TOKEN"),
+ assert_that(p.cargo("login").masquerade_as_nightly_cargo()
+ .arg("--registry").arg("alternative").arg("TOKEN").arg("-Zunstable-options"),
execs().with_status(0));
// Now perform the actual publish
assert_that(p.cargo("publish").masquerade_as_nightly_cargo()
- .arg("--registry").arg("alternative"),
+ .arg("--registry").arg("alternative").arg("-Zunstable-options"),
execs().with_status(0));
}
use std::io::prelude::*;
use std::fs::{self, File};
-use cargotest::cargo_process;
+use cargotest::{ChannelChanger, cargo_process};
use cargotest::support::execs;
use cargotest::support::registry::registry;
use cargotest::install::cargo_home;
let reg = "test-reg";
- assert_that(cargo_process().arg("login")
- .arg("--registry").arg(reg).arg(TOKEN),
+ assert_that(cargo_process().arg("login").masquerade_as_nightly_cargo()
+ .arg("--registry").arg(reg).arg(TOKEN).arg("-Zunstable-options"),
execs().with_status(0));
// Ensure that we have not updated the default token
let reg = "test.reg";
- assert_that(cargo_process().arg("login")
- .arg("--registry").arg(reg).arg(TOKEN),
+ assert_that(cargo_process().arg("login").masquerade_as_nightly_cargo()
+ .arg("--registry").arg(reg).arg(TOKEN).arg("-Zunstable-options"),
execs().with_status(0));
// Ensure that we have not updated the default token