mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 19:47:45 +00:00
cp: only allow directory for -t
This commit is contained in:
parent
d6c1b7fa91
commit
efd627bb20
2 changed files with 16 additions and 0 deletions
|
@ -315,6 +315,12 @@ pub fn uu_app<'a>() -> App<'a> {
|
||||||
.long(options::TARGET_DIRECTORY)
|
.long(options::TARGET_DIRECTORY)
|
||||||
.value_name(options::TARGET_DIRECTORY)
|
.value_name(options::TARGET_DIRECTORY)
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
|
.validator(|s| {
|
||||||
|
if Path::new(s).is_dir() {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
Err("must specify a directory")
|
||||||
|
})
|
||||||
.help("copy all SOURCE arguments into target-directory"))
|
.help("copy all SOURCE arguments into target-directory"))
|
||||||
.arg(Arg::new(options::NO_TARGET_DIRECTORY)
|
.arg(Arg::new(options::NO_TARGET_DIRECTORY)
|
||||||
.short('T')
|
.short('T')
|
||||||
|
|
|
@ -183,6 +183,16 @@ fn test_cp_arg_no_target_directory() {
|
||||||
.stderr_contains("cannot overwrite directory");
|
.stderr_contains("cannot overwrite directory");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_cp_target_directory_is_file() {
|
||||||
|
new_ucmd!()
|
||||||
|
.arg("-t")
|
||||||
|
.arg(TEST_HOW_ARE_YOU_SOURCE)
|
||||||
|
.arg(TEST_HELLO_WORLD_SOURCE)
|
||||||
|
.fails()
|
||||||
|
.stderr_contains("must specify a directory");
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_cp_arg_interactive() {
|
fn test_cp_arg_interactive() {
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue