aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/downloader/git_downloader.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-23 03:07:15 +0900
committernsfisis <nsfisis@gmail.com>2026-05-23 15:48:00 +0900
commite068a9d644fde6659a88accd55b3f1d0d9d7cf46 (patch)
treebb719a70eb8c840957a94a5601df8961055ceb0f /crates/shirabe/src/downloader/git_downloader.rs
parent60eb89529c8af2e4477e0bb65ed9e0f2dc7d3dd7 (diff)
downloadphp-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.tar.gz
php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.tar.zst
php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.zip
refactor(promise): rewrite promise bodies to async/await
Mechanically convert promise-returning function bodies to async/await: resolve() returns the value directly, forwarding calls get .await, and simple .then chains become await sequences. Also collapse the installer double-Option (Result<Option<Option<PhpMixed>>> -> Result<Option<PhpMixed>>). Hard spots that depend on the Loop::wait / job-machine boundary (accept/reject orchestration, closures capturing &mut self, batch waits) are left intact and marked with TODO(phase-c-promise) for manual porting. The crate does not compile yet; traits still need #[async_trait]. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/downloader/git_downloader.rs')
-rw-r--r--crates/shirabe/src/downloader/git_downloader.rs28
1 files changed, 14 insertions, 14 deletions
diff --git a/crates/shirabe/src/downloader/git_downloader.rs b/crates/shirabe/src/downloader/git_downloader.rs
index e6bc16b..e43d31b 100644
--- a/crates/shirabe/src/downloader/git_downloader.rs
+++ b/crates/shirabe/src/downloader/git_downloader.rs
@@ -66,7 +66,7 @@ impl GitDownloader {
) -> Result<Option<PhpMixed>> {
// Do not create an extra local cache when repository is already local
if Filesystem::is_local_path(url) {
- return Ok(promise::resolve(None));
+ return Ok(None);
}
GitUtil::clean_env(&self.inner.process);
@@ -129,7 +129,7 @@ impl GitDownloader {
.into());
}
- Ok(promise::resolve(None))
+ Ok(None)
}
pub(crate) async fn do_install(
@@ -282,7 +282,7 @@ impl GitDownloader {
let _ = new_ref;
}
- Ok(promise::resolve(None))
+ Ok(None)
}
pub(crate) async fn do_update(
@@ -448,7 +448,7 @@ impl GitDownloader {
self.update_origin_url(&path, target.get_source_url().unwrap());
}
- Ok(promise::resolve(None))
+ Ok(None)
}
pub fn get_local_changes(&self, _package: &dyn PackageInterface, path: &str) -> Option<String> {
@@ -717,23 +717,23 @@ impl GitDownloader {
let changes = match self.get_local_changes(package, &path) {
Some(c) => c,
- None => return Ok(promise::resolve(None)),
+ None => return Ok(None),
};
if !self.inner.io.is_interactive() {
let discard_changes = self.inner.config.borrow_mut().get("discard-changes");
if discard_changes.as_bool() == Some(true) {
- return self.discard_changes(&path);
+ return self.discard_changes(&path).await;
}
if discard_changes.as_string() == Some("stash") {
if !update {
- return self.inner.clean_changes(package, &path, update);
+ return self.inner.clean_changes(package, &path, update).await;
}
- return self.stash_changes(&path);
+ return self.stash_changes(&path).await;
}
- return self.inner.clean_changes(package, &path, update);
+ return self.inner.clean_changes(package, &path, update).await;
}
let changes: Vec<String> = array_map(
@@ -780,7 +780,7 @@ impl GitDownloader {
let mut do_help = false;
match answer.as_deref() {
Some("y") => {
- self.discard_changes(&path)?;
+ self.discard_changes(&path).await?;
break 'outer;
}
Some("s") => {
@@ -788,7 +788,7 @@ impl GitDownloader {
// goto help;
do_help = true;
} else {
- self.stash_changes(&path)?;
+ self.stash_changes(&path).await?;
break 'outer;
}
}
@@ -847,7 +847,7 @@ impl GitDownloader {
}
}
- Ok(promise::resolve(None))
+ Ok(None)
}
pub(crate) fn reapply_changes(&mut self, path: &str) -> Result<()> {
@@ -1254,7 +1254,7 @@ impl GitDownloader {
self.has_discarded_changes.insert(path, true);
- Ok(promise::resolve(None))
+ Ok(None)
}
/// @phpstan-return PromiseInterface<void|null>
@@ -1281,7 +1281,7 @@ impl GitDownloader {
self.has_stashed_changes.insert(path, true);
- Ok(promise::resolve(None))
+ Ok(None)
}
/// @throws \RuntimeException