diff options
Diffstat (limited to 'crates/core/tedge_watchdog')
-rw-r--r-- | crates/core/tedge_watchdog/src/dummy_watchdog.rs | 3 | ||||
-rw-r--r-- | crates/core/tedge_watchdog/src/error.rs | 4 | ||||
-rw-r--r-- | crates/core/tedge_watchdog/src/main.rs | 13 |
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 } |