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: 0 additions & 2 deletions src/uu/stdbuf/locales/en-US.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,5 @@ stdbuf-error-value-too-large = invalid mode '{$value}': Value too large for defi
stdbuf-error-external-libstdbuf-not-found = External libstdbuf not found at configured path: {$path}
stdbuf-error-preload-path-separator = libstdbuf path {$path} contains ':', which cannot be represented in {$var}
stdbuf: set TMPDIR to a directory whose path has no ':'
stdbuf-error-permission-denied = failed to execute process: Permission denied
stdbuf-error-no-such-file = failed to execute process: No such file or directory
stdbuf-error-failed-to-execute = failed to execute process: {$error}
stdbuf-error-killed-by-signal = process killed by signal {$signal}
2 changes: 0 additions & 2 deletions src/uu/stdbuf/locales/fr-FR.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,5 @@ stdbuf-error-value-too-large = mode invalide '{$value}' : Valeur trop grande pou
stdbuf-error-external-libstdbuf-not-found = libstdbuf externe introuvable au chemin configuré : {$path}
stdbuf-error-preload-path-separator = le chemin de libstdbuf {$path} contient ':', ce qui ne peut pas être représenté dans {$var}
stdbuf: définissez TMPDIR vers un répertoire dont le chemin ne contient pas ':'
stdbuf-error-permission-denied = échec de l'exécution du processus : Permission refusée
stdbuf-error-no-such-file = échec de l'exécution du processus : Aucun fichier ou répertoire de ce type
stdbuf-error-failed-to-execute = échec de l'exécution du processus : {$error}
stdbuf-error-killed-by-signal = processus tué par le signal {$signal}
25 changes: 10 additions & 15 deletions src/uu/stdbuf/src/stdbuf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use tempfile::TempDir;
use tempfile::tempdir;
use thiserror::Error;
use uucore::display::Quotable;
use uucore::error::{UResult, USimpleError, UUsageError};
use uucore::error::{UResult, USimpleError, UUsageError, strip_errno};
use uucore::format_usage;
use uucore::parser::parse_size::parse_size_u64;
use uucore::translate;
Expand Down Expand Up @@ -236,20 +236,15 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
Err(err) => err,
};
// exec() only returns if there was an error
match e.kind() {
std::io::ErrorKind::PermissionDenied => Err(USimpleError::new(
126,
translate!("stdbuf-error-permission-denied"),
)),
std::io::ErrorKind::NotFound => Err(USimpleError::new(
127,
translate!("stdbuf-error-no-such-file"),
)),
_ => Err(USimpleError::new(
1,
translate!("stdbuf-error-failed-to-execute", "error" => e),
)),
}
let exit_code = match e.kind() {
std::io::ErrorKind::PermissionDenied => 126,
std::io::ErrorKind::NotFound => 127,
_ => 1,
};
Err(USimpleError::new(
exit_code,
translate!("stdbuf-error-failed-to-execute", "error" => strip_errno(&e)),
))
}

pub fn uu_app() -> Command {
Expand Down
Loading