From 548ec1ffb232da4411ae8890080bcfd63300cda0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 9 Aug 2026 11:21:45 +0900 Subject: refactor(seld-signal): extract seld/signal into the shirabe-seld-signal crate Move `Seld\Signal` out of shirabe-external-packages and into its own crate, so the path is `shirabe_seld_signal::SignalHandler` instead of `shirabe_external_packages::seld::signal::SignalHandler`. Co-Authored-By: Claude Opus 5 (1M context) --- Cargo.lock | 5 +++++ Cargo.toml | 1 + crates/shirabe-external-packages/src/lib.rs | 1 - crates/shirabe-external-packages/src/seld.rs | 3 --- .../shirabe-external-packages/src/seld/signal.rs | 3 --- .../src/seld/signal/signal_handler.rs | 25 ---------------------- crates/shirabe-seld-signal/Cargo.toml | 7 ++++++ crates/shirabe-seld-signal/src/lib.rs | 3 +++ crates/shirabe-seld-signal/src/signal_handler.rs | 25 ++++++++++++++++++++++ crates/shirabe/Cargo.toml | 1 + .../shirabe/src/command/create_project_command.rs | 2 +- crates/shirabe/src/command/require_command.rs | 2 +- .../shirabe/src/installer/installation_manager.rs | 2 +- crates/shirabe/src/util/process_executor.rs | 2 +- 14 files changed, 46 insertions(+), 36 deletions(-) delete mode 100644 crates/shirabe-external-packages/src/seld.rs delete mode 100644 crates/shirabe-external-packages/src/seld/signal.rs delete mode 100644 crates/shirabe-external-packages/src/seld/signal/signal_handler.rs create mode 100644 crates/shirabe-seld-signal/Cargo.toml create mode 100644 crates/shirabe-seld-signal/src/lib.rs create mode 100644 crates/shirabe-seld-signal/src/signal_handler.rs diff --git a/Cargo.lock b/Cargo.lock index f50b37dc..543f3dbb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2103,6 +2103,7 @@ dependencies = [ "shirabe-php-rpc", "shirabe-php-shim", "shirabe-seld-json-lint", + "shirabe-seld-signal", "shirabe-semver", "shirabe-spdx-licenses", "shirabe-symfony-console", @@ -2213,6 +2214,10 @@ dependencies = [ "shirabe-php-shim", ] +[[package]] +name = "shirabe-seld-signal" +version = "0.0.1" + [[package]] name = "shirabe-semver" version = "0.0.1" diff --git a/Cargo.toml b/Cargo.toml index e87efbe6..a6435d88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ shirabe-php-rpc = { path = "crates/shirabe-php-rpc" } shirabe-php-shim = { path = "crates/shirabe-php-shim" } shirabe-php-src = { path = "crates/shirabe-php-src" } shirabe-seld-json-lint = { path = "crates/shirabe-seld-json-lint" } +shirabe-seld-signal = { path = "crates/shirabe-seld-signal" } shirabe-semver = { path = "crates/shirabe-semver" } shirabe-spdx-licenses = { path = "crates/shirabe-spdx-licenses" } shirabe-symfony-console = { path = "crates/shirabe-symfony-console" } diff --git a/crates/shirabe-external-packages/src/lib.rs b/crates/shirabe-external-packages/src/lib.rs index 2e52496a..0ee3b91c 100644 --- a/crates/shirabe-external-packages/src/lib.rs +++ b/crates/shirabe-external-packages/src/lib.rs @@ -1,2 +1 @@ pub mod composer; -pub mod seld; diff --git a/crates/shirabe-external-packages/src/seld.rs b/crates/shirabe-external-packages/src/seld.rs deleted file mode 100644 index ffe32e07..00000000 --- a/crates/shirabe-external-packages/src/seld.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod signal; - -pub use signal::*; diff --git a/crates/shirabe-external-packages/src/seld/signal.rs b/crates/shirabe-external-packages/src/seld/signal.rs deleted file mode 100644 index 16f51510..00000000 --- a/crates/shirabe-external-packages/src/seld/signal.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod signal_handler; - -pub use signal_handler::*; diff --git a/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs b/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs deleted file mode 100644 index b2f1873e..00000000 --- a/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs +++ /dev/null @@ -1,25 +0,0 @@ -//! ref: composer/vendor/seld/signal-handler/src/SignalHandler.php - -#[derive(Debug)] -pub struct SignalHandler; - -// TODO(phase-c): disable signal handler at all for now. -impl SignalHandler { - pub const SIGINT: &'static str = "SIGINT"; - pub const SIGTERM: &'static str = "SIGTERM"; - pub const SIGHUP: &'static str = "SIGHUP"; - - pub fn create(_signals: Vec, _callback: Box) -> Self { - Self - } - - pub fn unregister(&self) {} - - pub fn exit_with_last_signal(&self) { - std::process::exit(0); - } - - pub fn is_triggered(&self) -> bool { - false - } -} diff --git a/crates/shirabe-seld-signal/Cargo.toml b/crates/shirabe-seld-signal/Cargo.toml new file mode 100644 index 00000000..9a81d247 --- /dev/null +++ b/crates/shirabe-seld-signal/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "shirabe-seld-signal" +version.workspace = true +edition.workspace = true + +[lints] +workspace = true diff --git a/crates/shirabe-seld-signal/src/lib.rs b/crates/shirabe-seld-signal/src/lib.rs new file mode 100644 index 00000000..16f51510 --- /dev/null +++ b/crates/shirabe-seld-signal/src/lib.rs @@ -0,0 +1,3 @@ +pub mod signal_handler; + +pub use signal_handler::*; diff --git a/crates/shirabe-seld-signal/src/signal_handler.rs b/crates/shirabe-seld-signal/src/signal_handler.rs new file mode 100644 index 00000000..b2f1873e --- /dev/null +++ b/crates/shirabe-seld-signal/src/signal_handler.rs @@ -0,0 +1,25 @@ +//! ref: composer/vendor/seld/signal-handler/src/SignalHandler.php + +#[derive(Debug)] +pub struct SignalHandler; + +// TODO(phase-c): disable signal handler at all for now. +impl SignalHandler { + pub const SIGINT: &'static str = "SIGINT"; + pub const SIGTERM: &'static str = "SIGTERM"; + pub const SIGHUP: &'static str = "SIGHUP"; + + pub fn create(_signals: Vec, _callback: Box) -> Self { + Self + } + + pub fn unregister(&self) {} + + pub fn exit_with_last_signal(&self) { + std::process::exit(0); + } + + pub fn is_triggered(&self) -> bool { + false + } +} diff --git a/crates/shirabe/Cargo.toml b/crates/shirabe/Cargo.toml index 35aa4737..eef7daf4 100644 --- a/crates/shirabe/Cargo.toml +++ b/crates/shirabe/Cargo.toml @@ -11,6 +11,7 @@ shirabe-pcre.workspace = true shirabe-php-rpc.workspace = true shirabe-php-shim.workspace = true shirabe-seld-json-lint.workspace = true +shirabe-seld-signal.workspace = true shirabe-semver.workspace = true shirabe-spdx-licenses.workspace = true shirabe-symfony-console.workspace = true diff --git a/crates/shirabe/src/command/create_project_command.rs b/crates/shirabe/src/command/create_project_command.rs index a0a4aa2e..e8f7d187 100644 --- a/crates/shirabe/src/command/create_project_command.rs +++ b/crates/shirabe/src/command/create_project_command.rs @@ -36,7 +36,6 @@ use crate::util::Filesystem; use crate::util::Platform; use crate::util::ProcessExecutor; use indexmap::IndexMap; -use shirabe_external_packages::seld::signal::SignalHandler; use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_shim::Catch as _; use shirabe_php_shim::{ @@ -44,6 +43,7 @@ use shirabe_php_shim::{ chdir, explode_with_limit, file_exists, getcwd, impl_php_class, implode, is_dir, is_file, mkdir, realpath, rtrim, strtolower, unlink, }; +use shirabe_seld_signal::SignalHandler; use shirabe_symfony_console::command::command::Command; use shirabe_symfony_console::input::InputInterface; use shirabe_symfony_console::output::OutputInterface; diff --git a/crates/shirabe/src/command/require_command.rs b/crates/shirabe/src/command/require_command.rs index 44ebc54c..30e727d4 100644 --- a/crates/shirabe/src/command/require_command.rs +++ b/crates/shirabe/src/command/require_command.rs @@ -32,12 +32,12 @@ use crate::util::Filesystem; use crate::util::PackageSorter; use crate::util::Silencer; use indexmap::IndexMap; -use shirabe_external_packages::seld::signal::SignalHandler; use shirabe_php_shim::{ PhpMixed, RuntimeException, array_fill_keys, array_intersect, array_keys, array_map, array_merge, array_unique, empty, file_exists, file_get_contents, file_put_contents, filesize, impl_php_class, implode, is_writable, strtolower, unlink, }; +use shirabe_seld_signal::SignalHandler; use shirabe_symfony_console::command::command::Command; use shirabe_symfony_console::input::InputInterface; use shirabe_symfony_console::output::OutputInterface; diff --git a/crates/shirabe/src/installer/installation_manager.rs b/crates/shirabe/src/installer/installation_manager.rs index 454dfa86..24960d28 100644 --- a/crates/shirabe/src/installer/installation_manager.rs +++ b/crates/shirabe/src/installer/installation_manager.rs @@ -21,11 +21,11 @@ use crate::util::Platform; use crate::util::r#loop::Loop; use crate::util::sync_executor; use indexmap::IndexMap; -use shirabe_external_packages::seld::signal::SignalHandler; use shirabe_php_shim::{ InvalidArgumentException, PhpMixed, array_splice, array_unshift, http_build_query, json_encode, str_contains, str_replace, strpos, strtolower, }; +use shirabe_seld_signal::SignalHandler; /// Package operation manager. #[derive(Debug)] diff --git a/crates/shirabe/src/util/process_executor.rs b/crates/shirabe/src/util/process_executor.rs index 91c27fd0..97f4ed3d 100644 --- a/crates/shirabe/src/util/process_executor.rs +++ b/crates/shirabe/src/util/process_executor.rs @@ -6,7 +6,6 @@ use crate::io::io_interface; use crate::util::GitHub; use crate::util::Platform; use indexmap::IndexMap; -use shirabe_external_packages::seld::signal::SignalHandler; use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_shim::Catch as _; use shirabe_php_shim::{ @@ -15,6 +14,7 @@ use shirabe_php_shim::{ php_regex, rtrim, str_replace, strcspn, strlen, strpbrk, strtolower, strtr_array, substr_replace, trim, }; +use shirabe_seld_signal::SignalHandler; use shirabe_symfony_process::ExecutableFinder; use shirabe_symfony_process::Process; use shirabe_symfony_process::ProcessMock; -- cgit v1.3.1-4-g156e