diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-09 09:34:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-09 09:34:34 +0900 |
| commit | dfd98ce4b227a3a14dc913c669bee4f077a65178 (patch) | |
| tree | def0558566319a18ffbcdc4eb4e5175e3c6c9bb0 /crates/shirabe/src | |
| parent | d2a28f8c07b0aa713be338005c6153011d70f24b (diff) | |
| download | php-shirabe-dfd98ce4b227a3a14dc913c669bee4f077a65178.tar.gz php-shirabe-dfd98ce4b227a3a14dc913c669bee4f077a65178.tar.zst php-shirabe-dfd98ce4b227a3a14dc913c669bee4f077a65178.zip | |
refactor(php-shim): make the fs mutators return Result
mkdir, rmdir, unlink and symlink each had a bool version and a _result
twin returning the io::Error, which left two names for one call. Keep
only the Result form and let the callers that want a boolean spell out
.is_ok(). Call sites that discard the outcome, as their PHP originals
do, are unchanged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src')
| -rw-r--r-- | crates/shirabe/src/cache.rs | 3 | ||||
| -rw-r--r-- | crates/shirabe/src/console/application.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/factory.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/json/json_file.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/util/filesystem.rs | 14 |
5 files changed, 12 insertions, 11 deletions
diff --git a/crates/shirabe/src/cache.rs b/crates/shirabe/src/cache.rs index a9f56eac..14f7287f 100644 --- a/crates/shirabe/src/cache.rs +++ b/crates/shirabe/src/cache.rs @@ -106,7 +106,8 @@ impl Cache { if !self.read_only && ((!is_dir(&self.root) - && !Silencer::call(|| Ok(mkdir(&self.root, 0o777, true))).unwrap_or(false)) + && !Silencer::call(|| Ok(mkdir(&self.root, 0o777, true).is_ok())) + .unwrap_or(false)) || !is_writable(&self.root)) { self.io.write_error(&format!( diff --git a/crates/shirabe/src/console/application.rs b/crates/shirabe/src/console/application.rs index bf1f3575..05cd1d22 100644 --- a/crates/shirabe/src/console/application.rs +++ b/crates/shirabe/src/console/application.rs @@ -2335,7 +2335,7 @@ impl ApplicationHandle { ); if !(file_put_contents(&tempfile, file!().as_bytes()).is_some_and(|n| n > 0) && file_get_contents(&tempfile).as_deref() == Some(file!()) - && unlink(&tempfile) + && unlink(&tempfile).is_ok() && !file_exists(&tempfile)) { return Ok(Some(format!("<error>PHP temp directory ({}) does not exist or is not writable to Composer. Set sys_temp_dir in your php.ini</error>", sys_get_temp_dir()))); diff --git a/crates/shirabe/src/factory.rs b/crates/shirabe/src/factory.rs index d7439d58..18ff8ef5 100644 --- a/crates/shirabe/src/factory.rs +++ b/crates/shirabe/src/factory.rs @@ -299,7 +299,7 @@ impl Factory { if !is_dir(dir) { let dir_owned = dir.clone(); let _ = Silencer::call(|| { - Ok::<bool, anyhow::Error>(mkdir(&dir_owned, 0o777, true)) + Ok::<bool, anyhow::Error>(mkdir(&dir_owned, 0o777, true).is_ok()) }); } let path = format!("{}/.htaccess", dir); diff --git a/crates/shirabe/src/json/json_file.rs b/crates/shirabe/src/json/json_file.rs index feb72764..4c74b83e 100644 --- a/crates/shirabe/src/json/json_file.rs +++ b/crates/shirabe/src/json/json_file.rs @@ -237,7 +237,7 @@ impl JsonFile { .into()); } // PHP: @mkdir($dir, 0777, true) - if !Silencer::call(|| Ok(mkdir(&dir, 0o777, true))).unwrap_or(false) { + if !Silencer::call(|| Ok(mkdir(&dir, 0o777, true).is_ok())).unwrap_or(false) { return Err(UnexpectedValueException::new(format!( "{} does not exist and could not be created.", dir diff --git a/crates/shirabe/src/util/filesystem.rs b/crates/shirabe/src/util/filesystem.rs index 2c4cbcc6..925cb38a 100644 --- a/crates/shirabe/src/util/filesystem.rs +++ b/crates/shirabe/src/util/filesystem.rs @@ -240,7 +240,7 @@ impl Filesystem { } if is_link(directory) { - return Ok(Some(unlink(directory))); + return Ok(Some(unlink(directory).is_ok())); } if !is_dir(directory) || !file_exists(directory) { @@ -328,7 +328,7 @@ impl Filesystem { .into()); } - if !mkdir(directory, 0o777, true) { + if mkdir(directory, 0o777, true).is_err() { let e = RuntimeException::new(format!( "{} does not exist and could not be created: {}", directory, @@ -393,12 +393,12 @@ impl Filesystem { /// Attempts to rmdir a file and in case of failure retries after 350ms on windows pub fn rmdir(&self, path: impl AsRef<Path>) -> anyhow::Result<bool> { let path = path.as_ref(); - let mut deleted = rmdir(path); + let mut deleted = rmdir(path).is_ok(); if !deleted { // retry after a bit on windows since it tends to be touchy with mass removals if Platform::is_windows() { usleep(350000); - deleted = rmdir(path); + deleted = rmdir(path).is_ok(); } if !deleted { @@ -922,10 +922,10 @@ impl Filesystem { /// symbolic links on windows which link to directories need rmdir instead of unlink fn unlink_implementation(&self, path: &Path) -> bool { if Platform::is_windows() && is_dir(path) && is_link(path) { - return rmdir(path); + return rmdir(path).is_ok(); } - unlink(path) + unlink(path).is_ok() } /// Creates a relative symlink from $link to $target @@ -938,7 +938,7 @@ impl Filesystem { let relative_path = self.find_shortest_path(link, target, false, false); chdir(dirname(link)); - let result = symlink(&relative_path, link); + let result = symlink(&relative_path, link).is_ok(); chdir(&cwd); |
