From b94f8e694bf01f5dba9ce2c01f589463a3dfbc69 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Wed, 9 Oct 2024 18:23:58 -0500 Subject: feat!: rewrite to use traits and streams --- src/service/systemd.rs | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 src/service/systemd.rs (limited to 'src/service/systemd.rs') diff --git a/src/service/systemd.rs b/src/service/systemd.rs deleted file mode 100644 index ee220b8..0000000 --- a/src/service/systemd.rs +++ /dev/null @@ -1,36 +0,0 @@ -use std::{process::Command, time::Duration}; - -use serde::Deserialize; -use tokio::sync::watch::Sender; - -use crate::{Error, Status}; - -use super::ServiceSpawner; - -#[derive(Debug, Clone, Deserialize)] -pub struct Systemd { - pub service: String, -} - -impl ServiceSpawner for Systemd { - async fn spawn(self, tx: Sender) -> Result<(), Error> { - let mut command = Command::new("systemctl"); - command.arg("is-active").arg(&self.service); - - let mut interval = tokio::time::interval(Duration::from_secs(5)); - loop { - interval.tick().await; - - 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))) - } - }); - - tx.send_if_modified(|s| s.update(status)); - } - } -} -- cgit v1.2.3-70-g09d2