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

Merge pull request #7725 from nyurik/code-opt

chore: clean up a few code paths
This commit is contained in:
Daniel Hofstetter 2025-04-11 09:47:19 +02:00 committed by GitHub
commit 4bc518519f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 37 additions and 57 deletions

View file

@ -264,8 +264,7 @@ fn copy_direntry(
// If the source is not a directory, then we need to copy the file. // If the source is not a directory, then we need to copy the file.
if !source_absolute.is_dir() { if !source_absolute.is_dir() {
if preserve_hard_links { if let Err(err) = copy_file(
match copy_file(
progress_bar, progress_bar,
&source_absolute, &source_absolute,
local_to_target.as_path(), local_to_target.as_path(),
@ -275,18 +274,13 @@ fn copy_direntry(
copied_files, copied_files,
false, false,
) { ) {
Ok(_) => Ok(()), if preserve_hard_links {
Err(err) => { if !source_absolute.is_symlink() {
if source_absolute.is_symlink() { return Err(err);
}
// silent the error with a symlink // silent the error with a symlink
// In case we do --archive, we might copy the symlink // In case we do --archive, we might copy the symlink
// before the file itself // before the file itself
Ok(())
} else {
Err(err)
}
}
}?;
} else { } else {
// At this point, `path` is just a plain old file. // At this point, `path` is just a plain old file.
// Terminate this function immediately if there is any // Terminate this function immediately if there is any
@ -294,25 +288,16 @@ fn copy_direntry(
// //
// TODO What other kinds of errors, if any, should // TODO What other kinds of errors, if any, should
// cause us to continue walking the directory? // cause us to continue walking the directory?
match copy_file( match err {
progress_bar, Error::IoErrContext(e, _) if e.kind() == io::ErrorKind::PermissionDenied => {
&source_absolute,
local_to_target.as_path(),
options,
symlinked_files,
copied_destinations,
copied_files,
false,
) {
Ok(_) => {}
Err(Error::IoErrContext(e, _)) if e.kind() == io::ErrorKind::PermissionDenied => {
show!(uio_error!( show!(uio_error!(
e, e,
"cannot open {} for reading", "cannot open {} for reading",
source_relative.quote(), source_relative.quote(),
)); ));
} }
Err(e) => return Err(e), e => return Err(e),
}
} }
} }
} }

View file

@ -867,14 +867,12 @@ fn preserve_timestamps(from: &Path, to: &Path) -> UResult<()> {
let modified_time = FileTime::from_last_modification_time(&meta); let modified_time = FileTime::from_last_modification_time(&meta);
let accessed_time = FileTime::from_last_access_time(&meta); let accessed_time = FileTime::from_last_access_time(&meta);
match set_file_times(to, accessed_time, modified_time) { if let Err(e) = set_file_times(to, accessed_time, modified_time) {
Ok(_) => Ok(()),
Err(e) => {
show_error!("{e}"); show_error!("{e}");
// ignore error
}
Ok(()) Ok(())
} }
}
}
/// Copy one file to a new location, changing metadata. /// Copy one file to a new location, changing metadata.
/// ///

View file

@ -91,10 +91,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
output_error, output_error,
}; };
match tee(&options) { tee(&options).map_err(|_| 1.into())
Ok(_) => Ok(()),
Err(_) => Err(1.into()),
}
} }
pub fn uu_app() -> Command { pub fn uu_app() -> Command {