From 15ef76fcbf9c50c7034f4c49ce94927b1afeb49a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 31 Mar 2022 00:08:21 +0200 Subject: [PATCH] ln: when we get a failed to link, show which files --- src/uu/ln/src/ln.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/uu/ln/src/ln.rs b/src/uu/ln/src/ln.rs index c09f7a606..08eef6ae7 100644 --- a/src/uu/ln/src/ln.rs +++ b/src/uu/ln/src/ln.rs @@ -53,7 +53,7 @@ pub enum OverwriteMode { enum LnError { TargetIsDirectory(PathBuf), SomeLinksFailed, - FailedToLink(String), + FailedToLink(PathBuf, PathBuf, String), SameFile(PathBuf, PathBuf), MissingDestination(PathBuf), ExtraOperand(OsString), @@ -63,7 +63,7 @@ impl Display for LnError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Self::TargetIsDirectory(s) => write!(f, "target {} is not a directory", s.quote()), - Self::FailedToLink(e) => write!(f, "failed to link: {}", e), + Self::FailedToLink(s, d, e) => write!(f, "failed to link {} to {}: {}", s.quote(), d.quote(), e), Self::SameFile(e, e2) => write!( f, "'{}' and '{}' are the same file", @@ -91,7 +91,7 @@ impl UError for LnError { match self { Self::TargetIsDirectory(_) | Self::SomeLinksFailed - | Self::FailedToLink(_) + | Self::FailedToLink(_, _, _) | Self::SameFile(_, _) | Self::MissingDestination(_) | Self::ExtraOperand(_) => 1, @@ -293,7 +293,7 @@ fn exec(files: &[PathBuf], settings: &Settings) -> UResult<()> { match link(&files[0], &files[1], settings) { Ok(_) => Ok(()), - Err(e) => Err(LnError::FailedToLink(e.to_string()).into()), + Err(e) => Err(LnError::FailedToLink(files[0].to_owned(), files[1].to_owned(), e.to_string()).into()), } }