Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .vscode/cspell.dictionaries/workspace.wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,8 @@ weblate
algs
wasm
wasip
statx
Statx

# * stty terminal flags
brkint
Expand Down
2 changes: 1 addition & 1 deletion src/uu/stat/locales/en-US.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ stat-error-invalid-directive = {$directive}: invalid directive
stat-error-cannot-read-filesystem = cannot read table of mounted file systems: {$error}
stat-error-stdin-filesystem-mode = using '-' to denote standard input does not work in file system mode
stat-error-cannot-read-filesystem-info = cannot read file system information for {$file}: {$error}
stat-error-cannot-stat = cannot stat {$file}: {$error}
stat-error-cannot-statx = cannot statx {$file}: {$error}

## Warning messages

Expand Down
2 changes: 1 addition & 1 deletion src/uu/stat/locales/fr-FR.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ stat-error-invalid-directive = {$directive} : directive invalide
stat-error-cannot-read-filesystem = impossible de lire la table des systèmes de fichiers montés : {$error}
stat-error-stdin-filesystem-mode = utiliser '-' pour désigner l'entrée standard ne fonctionne pas en mode système de fichiers
stat-error-cannot-read-filesystem-info = impossible de lire les informations du système de fichiers pour {$file} : {$error}
stat-error-cannot-stat = impossible d'obtenir le statut de {$file} : {$error}
stat-error-cannot-statx = impossible d'obtenir le statut de {$file} : {$error}

## Messages d'avertissement

Expand Down
9 changes: 5 additions & 4 deletions src/uu/stat/src/stat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ use uucore::translate;

use clap::builder::ValueParser;
use uucore::display::Quotable;
use uucore::error::strip_errno;
use uucore::fs::{display_permissions, major, minor};
use uucore::fsext::{
FsMeta, MetadataTimeField, StatFs, metadata_get_time, pretty_filetype, pretty_fstype,
Expand Down Expand Up @@ -46,8 +47,8 @@ enum StatError {
StdinFilesystemMode,
#[error("{}", translate!("stat-error-cannot-read-filesystem-info", "file" => file.clone(), "error" => error.clone()))]
CannotReadFilesystemInfo { file: String, error: String },
#[error("{}", translate!("stat-error-cannot-stat", "file" => file.clone(), "error" => error.clone()))]
CannotStat { file: String, error: String },
#[error("{}", translate!("stat-error-cannot-statx", "file" => file.clone(), "error" => error.clone()))]
CannotStatx { file: String, error: String },
}

impl UError for StatError {
Expand Down Expand Up @@ -1287,9 +1288,9 @@ impl Stater {
Err(e) => {
show_error!(
"{}",
StatError::CannotStat {
StatError::CannotStatx {
file: display_name.quote().to_string(),
error: e.to_string()
error: strip_errno(&e)
}
);
return 1;
Expand Down
9 changes: 9 additions & 0 deletions tests/by-util/test_stat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -727,3 +727,12 @@ fn test_correct_metadata() {
assert_eq!(output, &expected);
}
}

#[test]
fn test_no_such_directory_message() {
let ts = TestScenario::new(util_name!());
ts.ucmd()
.arg("a")
.fails_with_code(1)
.stderr_is("stat: cannot statx 'a': No such file or directory\n");
}
Loading