summaryrefslogtreecommitdiffstats
path: root/src/service/systemd.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-10-01 13:15:24 -0500
committerToby Vincent <tobyv@tobyvin.dev>2024-10-01 13:15:24 -0500
commitfe16a923190243dfde5db6ceff2ef0bcf9158926 (patch)
tree9b8b616e1972ca3ef6e28d29c980899af3ddde49 /src/service/systemd.rs
parente1d9c956beb6921b0d549248bea3a6853fde5f46 (diff)
feat: simplify service status type
Diffstat (limited to 'src/service/systemd.rs')
-rw-r--r--src/service/systemd.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/service/systemd.rs b/src/service/systemd.rs
index 90213a0..ee220b8 100644
--- a/src/service/systemd.rs
+++ b/src/service/systemd.rs
@@ -21,17 +21,14 @@ impl ServiceSpawner for Systemd {
loop {
interval.tick().await;
- let status = match command.output() {
- Ok(output) if output.status.success() => Status::Pass,
- Ok(output) => {
- let stdout = String::from_utf8_lossy(&output.stdout).trim().to_string();
- Status::Fail(Some(format!("Service state: {}", stdout)))
+ let status = command.output().map_or_else(Into::into, |o| {
+ if o.status.success() {
+ Status::Ok
+ } else {
+ let stdout = String::from_utf8_lossy(&o.stdout).trim().to_string();
+ Status::Error(Some(format!("Service state: {}", stdout)))
}
- Err(err) => {
- tracing::error!("Failed to spawn process: {err}");
- Status::Unknown
- }
- };
+ });
tx.send_if_modified(|s| s.update(status));
}