chore(tvix/store): drop walkdir workaround for symlinks at root

https://github.com/BurntSushi/walkdir/pull/170 got merged, meaning we
don't need to keep our own logic in here anymore.

Our test cases already cover this.

Change-Id: Ied3043ee651c8aafa10271c1e1ca5d460fb6c0b8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9269
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
Florian Klink 2023-09-05 17:08:50 +03:00 committed by clbot
parent e187a7bcb1
commit 7bd3c42c74
4 changed files with 9 additions and 25 deletions

View file

@ -6,7 +6,6 @@ use std::sync::Arc;
use std::{
collections::HashMap,
fmt::Debug,
fs,
fs::File,
io,
os::unix::prelude::PermissionsExt,
@ -130,6 +129,9 @@ fn process_entry(
/// interacting with a [BlobService] and [DirectoryService].
/// It returns the root node or an error.
///
/// It does not follow symlinks at the root, they will be ingested as actual
/// symlinks.
///
/// It's not interacting with a
/// [PathInfoService](crate::pathinfoservice::PathInfoService), it's up to the
/// caller to possibly register it somewhere (and potentially rename it based on
@ -140,25 +142,6 @@ pub fn ingest_path<P: AsRef<Path> + Debug>(
directory_service: Arc<dyn DirectoryService>,
p: P,
) -> Result<proto::node::Node, Error> {
// Probe if the path points to a symlink. If it does, we process it manually,
// due to https://github.com/BurntSushi/walkdir/issues/175.
let symlink_metadata = fs::symlink_metadata(p.as_ref())
.map_err(|e| Error::UnableToStat(p.as_ref().to_path_buf(), e))?;
if symlink_metadata.is_symlink() {
let target = std::fs::read_link(p.as_ref())
.map_err(|e| Error::UnableToStat(p.as_ref().to_path_buf(), e))?;
return Ok(proto::node::Node::Symlink(proto::SymlinkNode {
name: p
.as_ref()
.file_name()
.unwrap_or_default()
.as_bytes()
.to_owned()
.into(),
target: target.as_os_str().as_bytes().to_vec().into(),
}));
}
let mut directories: HashMap<PathBuf, proto::Directory> = HashMap::default();
// TODO: pass this one instead?
@ -166,6 +149,7 @@ pub fn ingest_path<P: AsRef<Path> + Debug>(
for entry in WalkDir::new(p)
.follow_links(false)
.follow_root_links(false)
.contents_first(true)
.sort_by_file_name()
{