1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

Merge pull request #3117 from jfinkels/touch-no-deref-no-file

touch: show error on -h with nonexistent file
This commit is contained in:
Sylvestre Ledru 2022-02-12 11:27:46 +01:00 committed by GitHub
commit 463e160d2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 2 deletions

View file

@ -83,8 +83,18 @@ Try 'touch --help' for more information."##,
for filename in files { for filename in files {
let path = Path::new(filename); let path = Path::new(filename);
if !path.exists() { if !path.exists() {
// no-dereference included here for compatibility if matches.is_present(options::NO_CREATE) {
if matches.is_present(options::NO_CREATE) || matches.is_present(options::NO_DEREF) { continue;
}
if matches.is_present(options::NO_DEREF) {
show!(USimpleError::new(
1,
format!(
"setting times of {}: No such file or directory",
filename.quote()
)
));
continue; continue;
} }

View file

@ -539,3 +539,16 @@ fn test_touch_no_args() {
Try 'touch --help' for more information."##, Try 'touch --help' for more information."##,
); );
} }
#[test]
fn test_no_dereference_no_file() {
new_ucmd!()
.args(&["-h", "not-a-file"])
.fails()
.stderr_contains("setting times of 'not-a-file': No such file or directory");
new_ucmd!()
.args(&["-h", "not-a-file-1", "not-a-file-2"])
.fails()
.stderr_contains("setting times of 'not-a-file-1': No such file or directory")
.stderr_contains("setting times of 'not-a-file-2': No such file or directory");
}