aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/event_dispatcher
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-15 08:45:08 +0900
committernsfisis <nsfisis@gmail.com>2026-08-15 08:45:08 +0900
commit2e40eaf6bf5c4bd8eedad597e4c3b19b5457421b (patch)
treef4a3843e0c903d4eaca3ac7882836c77a255c999 /crates/shirabe/src/event_dispatcher
parent55f385450407a3d8c6c7c90ec4dc8995f5277a94 (diff)
downloadphp-shirabe-2e40eaf6bf5c4bd8eedad597e4c3b19b5457421b.tar.gz
php-shirabe-2e40eaf6bf5c4bd8eedad597e4c3b19b5457421b.tar.zst
php-shirabe-2e40eaf6bf5c4bd8eedad597e4c3b19b5457421b.zip
feat(diagnose): audit the Composer runtime the executable carries
checkComposerAudit reported success instead of auditing anything, because the binary ships no vendor/composer/installed.json on disk. It reads the one in the embedded Composer PHP runtime now, and Composer's warning for a missing installed.json is back. Only that file leaves the bundle, into a temporary directory that goes away with the handle; the runtime is unpacked whole only for a worker that cannot read the bundle in place. Phar::extractTo's $files argument selects it, which the shim ignored so far. SHIRABE_COMPOSER_PHP_DIR moves into composer_runtime, so the worker and a reader on the Rust side resolve the runtime through the same branch. DiagnoseCommandTest::testCmdSuccess is ignored: packagist has advisories against composer/composer 2.9.7, the version Composer::VERSION reports, so diagnose exits 1 where the test expects 0. Upstream Composer 2.9.7 reports the same advisories. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/event_dispatcher')
-rw-r--r--crates/shirabe/src/event_dispatcher/event_dispatcher.rs17
1 files changed, 1 insertions, 16 deletions
diff --git a/crates/shirabe/src/event_dispatcher/event_dispatcher.rs b/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
index 8f0b54be..1a03ad70 100644
--- a/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
+++ b/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
@@ -1581,23 +1581,8 @@ try {{
Self::ensure_composer_php_runtime()
}
- /// The `vendor/autoload.php` of the Composer PHP runtime: the checkout `SHIRABE_COMPOSER_PHP_DIR`
- /// points at, or else the runtime bundle the executable carries.
+ /// The `vendor/autoload.php` of the Composer PHP runtime.
fn composer_php_runtime_autoload() -> anyhow::Result<String> {
- if let Some(dir) = Platform::get_env("SHIRABE_COMPOSER_PHP_DIR") {
- let path = std::path::Path::new(&dir)
- .join("vendor")
- .join("autoload.php");
- if !path.is_file() {
- return Err(RuntimeException::new(format!(
- "SHIRABE_COMPOSER_PHP_DIR points at {dir}, which has no \
- vendor/autoload.php; install the checkout's dependencies or unset it to use \
- the runtime the executable carries"
- ))
- .into());
- }
- return Ok(path.display().to_string());
- }
Ok(format!(
"{}/vendor/autoload.php",
shirabe_php_rpc::composer_runtime::base_path()?