aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/http/curl_downloader.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-06 03:46:41 +0900
committernsfisis <nsfisis@gmail.com>2026-08-06 03:46:41 +0900
commit92d2199afcecd0056e82d2559700769715401ef0 (patch)
treeb9d65620db53bc19f800247660e560f3f8775217 /crates/shirabe/src/util/http/curl_downloader.rs
parent27e81d5e5ca0a89eb176a65b1d9f186658b16f50 (diff)
downloadphp-shirabe-92d2199afcecd0056e82d2559700769715401ef0.tar.gz
php-shirabe-92d2199afcecd0056e82d2559700769715401ef0.tar.zst
php-shirabe-92d2199afcecd0056e82d2559700769715401ef0.zip
refactor(php-shim): take filesystem paths as impl AsRef<Path>
The shim's filesystem entry points took `&str` even though each one resolves to a local path through `std::fs` or a syscall, so callers holding a `PathBuf` had to stringify it at the call site. They now take `impl AsRef<Path>`, the form `file_exists`, `is_dir`, `unlink` and the rest of the already-converted set use. `Phar`, `PharData` and `ZipArchive` keep their archive path as a `PathBuf`. `PharData::compress` names the compressed sibling by appending the suffix to the file name rather than formatting the path into a `String`. Arguments PHP resolves through a stream wrapper (`fopen`, `file_put_contents`, `include`) still take `&str`, as do the byte-string operations (`dirname`, `basename`, `pathinfo`) and archive-internal entry names, which are `/`-joined logical names rather than OS paths. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/util/http/curl_downloader.rs')
-rw-r--r--crates/shirabe/src/util/http/curl_downloader.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/shirabe/src/util/http/curl_downloader.rs b/crates/shirabe/src/util/http/curl_downloader.rs
index 89e9661e..1207dea0 100644
--- a/crates/shirabe/src/util/http/curl_downloader.rs
+++ b/crates/shirabe/src/util/http/curl_downloader.rs
@@ -296,7 +296,7 @@ impl CurlDownloader {
crate::io::DEBUG,
);
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
return Ok(Decision::Retry {
url: url.to_string(),
@@ -305,7 +305,7 @@ impl CurlDownloader {
}
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
// PHP throws a MaxFileSizeExceededException (a TransportException subclass) with
// the raw "Maximum allowed download size reached..." message verbatim rather than
@@ -368,7 +368,7 @@ impl CurlDownloader {
.unwrap_or(0);
attributes.insert("retries".to_string(), PhpMixed::Int(retries + 1));
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
return Ok(Decision::Retry {
url: url.to_string(),
@@ -392,7 +392,7 @@ impl CurlDownloader {
Ok(location) if !location.is_empty() => {
attributes.insert("redirects".to_string(), PhpMixed::Int(redirects + 1));
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
return Ok(Decision::Retry {
url: location,
@@ -402,7 +402,7 @@ impl CurlDownloader {
Ok(_) => {}
Err(e) => {
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
return Ok(Decision::Failed(e));
}
@@ -440,7 +440,7 @@ impl CurlDownloader {
);
attributes.insert("retries".to_string(), PhpMixed::Int(retries + 1));
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
return Ok(Decision::Retry {
url: url.to_string(),
@@ -827,7 +827,7 @@ impl CurlDownloader {
error_message: &str,
) -> TransportException {
if let Some(filename) = filename {
- unlink_silent(&format!("{}~", filename));
+ unlink_silent(format!("{}~", filename));
}
let mut details = String::new();