aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs')
-rw-r--r--crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs b/crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs
index 8b30c8d..03c4df2 100644
--- a/crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs
+++ b/crates/shirabe-external-packages/src/symfony/process/exception/process_signaled_exception.rs
@@ -1,9 +1,28 @@
//! ref: composer/vendor/symfony/process/Exception/ProcessSignaledException.php
+use crate::symfony::process::process::Process;
+
#[derive(Debug)]
pub struct ProcessSignaledException {
pub message: String,
pub code: i64,
+ signal: i64,
+}
+
+impl ProcessSignaledException {
+ pub fn new(process: &mut Process) -> anyhow::Result<Self> {
+ let signal = process.get_term_signal()?;
+
+ Ok(Self {
+ message: format!("The process has been signaled with signal \"{}\".", signal),
+ code: 0,
+ signal,
+ })
+ }
+
+ pub fn get_signal(&self) -> i64 {
+ self.signal
+ }
}
impl std::fmt::Display for ProcessSignaledException {