summaryrefslogtreecommitdiffstats
path: root/crates/core/tedge_watchdog
diff options
context:
space:
mode:
Diffstat (limited to 'crates/core/tedge_watchdog')
-rw-r--r--crates/core/tedge_watchdog/src/dummy_watchdog.rs3
-rw-r--r--crates/core/tedge_watchdog/src/error.rs4
-rw-r--r--crates/core/tedge_watchdog/src/main.rs13
3 files changed, 19 insertions, 1 deletions
diff --git a/crates/core/tedge_watchdog/src/dummy_watchdog.rs b/crates/core/tedge_watchdog/src/dummy_watchdog.rs
new file mode 100644
index 00000000..f701ffbe
--- /dev/null
+++ b/crates/core/tedge_watchdog/src/dummy_watchdog.rs
@@ -0,0 +1,3 @@
+pub async fn start_watchdog(_config_dir: PathBuf) -> Result<(), anyhow::Error> {
+ anyhow::Error::from(crate::error::WatchdogError::WatchdogNotAvailable)
+}
diff --git a/crates/core/tedge_watchdog/src/error.rs b/crates/core/tedge_watchdog/src/error.rs
index f9763798..27a9a1ed 100644
--- a/crates/core/tedge_watchdog/src/error.rs
+++ b/crates/core/tedge_watchdog/src/error.rs
@@ -4,6 +4,10 @@ use tedge_config::{ConfigSettingError, TEdgeConfigError};
#[derive(Debug, thiserror::Error)]
pub enum WatchdogError {
+ #[cfg(not(target_os = "linux"))]
+ #[error("The watchdog is not available on this platform")]
+ WatchdogNotAvailable,
+
#[error("Fail to run `{cmd}`: {from}")]
CommandExecError { cmd: String, from: std::io::Error },
diff --git a/crates/core/tedge_watchdog/src/main.rs b/crates/core/tedge_watchdog/src/main.rs
index e4478b2f..8f0c2b4b 100644
--- a/crates/core/tedge_watchdog/src/main.rs
+++ b/crates/core/tedge_watchdog/src/main.rs
@@ -3,7 +3,18 @@ use std::path::PathBuf;
use tedge_config::DEFAULT_TEDGE_CONFIG_PATH;
mod error;
+
+// on linux, we use systemd
+#[cfg(target_os = "linux")]
mod systemd_watchdog;
+#[cfg(target_os = "linux")]
+use systemd_watchdog as watchdog;
+
+// on non-linux, we do nothing for now
+#[cfg(not(target_os = "linux"))]
+mod dummy_watchdog;
+#[cfg(not(target_os = "linux"))]
+use dummy_watchdog as watchdog;
#[derive(Debug, clap::Parser)]
#[clap(
@@ -31,5 +42,5 @@ async fn main() -> Result<(), anyhow::Error> {
let watchdog_opt = WatchdogOpt::parse();
tedge_utils::logging::initialise_tracing_subscriber(watchdog_opt.debug);
- systemd_watchdog::start_watchdog(watchdog_opt.config_dir).await
+ watchdog::start_watchdog(watchdog_opt.config_dir).await
}