aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/shirabe-php-shim/src/fs.rs13
-rw-r--r--crates/shirabe/src/util/filesystem.rs2
2 files changed, 10 insertions, 5 deletions
diff --git a/crates/shirabe-php-shim/src/fs.rs b/crates/shirabe-php-shim/src/fs.rs
index 0006020a..26ea1fdf 100644
--- a/crates/shirabe-php-shim/src/fs.rs
+++ b/crates/shirabe-php-shim/src/fs.rs
@@ -189,10 +189,15 @@ impl RecursiveIteratorFileInfo {
self.path.to_string_lossy().into_owned()
}
- pub fn get_size(&self) -> i64 {
- std::fs::metadata(&self.path)
- .map(|m| m.len() as i64)
- .unwrap_or(0)
+ pub fn get_size(&self) -> anyhow::Result<i64> {
+ match filesize(&self.path) {
+ Some(size) => Ok(size),
+ None => Err(crate::RuntimeException::new(format!(
+ "SplFileInfo::getSize(): stat failed for {}",
+ self.path.display()
+ ))
+ .into()),
+ }
}
fn sub_pathname(&self) -> String {
diff --git a/crates/shirabe/src/util/filesystem.rs b/crates/shirabe/src/util/filesystem.rs
index 44dddb8c..1a9ab703 100644
--- a/crates/shirabe/src/util/filesystem.rs
+++ b/crates/shirabe/src/util/filesystem.rs
@@ -856,7 +856,7 @@ impl Filesystem {
let mut size: i64 = 0;
for file in &ri {
if file.is_file() {
- size += file.get_size();
+ size += file.get_size()?;
}
}