mirror of
https://github.com/rust-lang/cargo.git
synced 2025-10-01 11:30:39 +00:00
Support aliases
This commit is contained in:
parent
6783272a82
commit
93875b88da
@ -13,7 +13,7 @@ use std::process;
|
|||||||
use clap::{AppSettings, Arg, ArgMatches};
|
use clap::{AppSettings, Arg, ArgMatches};
|
||||||
use toml;
|
use toml;
|
||||||
|
|
||||||
use cargo::{self, Config, CargoResult, CargoError, CliError};
|
use cargo::{self, Config, CargoResult, CargoError, CliResult, CliError};
|
||||||
use cargo::core::{Workspace, Source, SourceId, GitReference, Package};
|
use cargo::core::{Workspace, Source, SourceId, GitReference, Package};
|
||||||
use cargo::util::{ToUrl, CargoResultExt};
|
use cargo::util::{ToUrl, CargoResultExt};
|
||||||
use cargo::util::important_paths::find_root_manifest_for_wd;
|
use cargo::util::important_paths::find_root_manifest_for_wd;
|
||||||
@ -23,7 +23,7 @@ use cargo::sources::{GitSource, RegistrySource};
|
|||||||
|
|
||||||
use self::utils::*;
|
use self::utils::*;
|
||||||
|
|
||||||
pub fn do_main(config: &mut Config) -> Result<(), CliError> {
|
pub fn do_main(config: &mut Config) -> CliResult {
|
||||||
let args = cli().get_matches();
|
let args = cli().get_matches();
|
||||||
if args.is_present("version") {
|
if args.is_present("version") {
|
||||||
let version = cargo::version();
|
let version = cargo::version();
|
||||||
@ -43,7 +43,12 @@ pub fn do_main(config: &mut Config) -> Result<(), CliError> {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
execte_subcommand(config, args)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn execte_subcommand(config: &mut Config, args: ArgMatches) -> CliResult {
|
||||||
config_from_args(config, &args)?;
|
config_from_args(config, &args)?;
|
||||||
|
|
||||||
match args.subcommand() {
|
match args.subcommand() {
|
||||||
("bench", Some(args)) => {
|
("bench", Some(args)) => {
|
||||||
let ws = workspace_from_args(config, args)?;
|
let ws = workspace_from_args(config, args)?;
|
||||||
@ -509,10 +514,17 @@ pub fn do_main(config: &mut Config) -> Result<(), CliError> {
|
|||||||
registry)?;
|
registry)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
(external, Some(args)) => {
|
(cmd, Some(args)) => {
|
||||||
let mut ext_args: Vec<&str> = vec![external];
|
if let Some(mut alias) = super::aliased_command(config, cmd)? {
|
||||||
|
alias.extend(args.values_of("").unwrap_or_default().map(|s| s.to_string()));
|
||||||
|
let args = cli()
|
||||||
|
.setting(AppSettings::NoBinaryName)
|
||||||
|
.get_matches_from(alias);
|
||||||
|
return execte_subcommand(config, args);
|
||||||
|
}
|
||||||
|
let mut ext_args: Vec<&str> = vec![cmd];
|
||||||
ext_args.extend(args.values_of("").unwrap_or_default());
|
ext_args.extend(args.values_of("").unwrap_or_default());
|
||||||
super::execute_external_subcommand(config, external, &ext_args)
|
super::execute_external_subcommand(config, cmd, &ext_args)
|
||||||
}
|
}
|
||||||
_ => Ok(())
|
_ => Ok(())
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ use cargotest::support::{project, execs, basic_bin_manifest};
|
|||||||
use hamcrest::{assert_that};
|
use hamcrest::{assert_that};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
fn alias_incorrect_config_type() {
|
fn alias_incorrect_config_type() {
|
||||||
let p = project("foo")
|
let p = project("foo")
|
||||||
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
||||||
@ -42,7 +41,6 @@ fn alias_default_config_overrides_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
fn alias_config() {
|
fn alias_config() {
|
||||||
let p = project("foo")
|
let p = project("foo")
|
||||||
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
||||||
@ -62,7 +60,6 @@ fn alias_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
fn alias_list_test() {
|
fn alias_list_test() {
|
||||||
let p = project("foo")
|
let p = project("foo")
|
||||||
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
||||||
@ -83,7 +80,6 @@ fn alias_list_test() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
fn alias_with_flags_config() {
|
fn alias_with_flags_config() {
|
||||||
let p = project("foo")
|
let p = project("foo")
|
||||||
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
.file("Cargo.toml", &basic_bin_manifest("foo"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user