From 80335676b14cd67426d1b51314dd0a6680709368 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 5 May 2025 22:28:26 +1000 Subject: [PATCH] refactor(rust): move `uptime` to `bin-shared` (#9027) The `uptime` module from `firezone-headless-client` is also used in the GUI client. In order to decouple this dependency, we move the module to `bin-shared`, next to the other cross-plaform modules. --- rust/bin-shared/src/lib.rs | 2 ++ rust/{headless-client => bin-shared}/src/uptime/README.md | 0 rust/{headless-client => bin-shared}/src/uptime/mod.rs | 0 rust/gui-client/src-tauri/src/client.rs | 2 +- rust/headless-client/src/ipc_service.rs | 4 ++-- rust/headless-client/src/lib.rs | 1 - 6 files changed, 5 insertions(+), 4 deletions(-) rename rust/{headless-client => bin-shared}/src/uptime/README.md (100%) rename rust/{headless-client => bin-shared}/src/uptime/mod.rs (100%) diff --git a/rust/bin-shared/src/lib.rs b/rust/bin-shared/src/lib.rs index 2b879c65e..e5d7b829e 100644 --- a/rust/bin-shared/src/lib.rs +++ b/rust/bin-shared/src/lib.rs @@ -23,6 +23,8 @@ pub mod macos; #[cfg(target_os = "macos")] pub use macos as platform; +pub mod uptime; + pub const TOKEN_ENV_KEY: &str = "FIREZONE_TOKEN"; // wintun automatically append " Tunnel" to this diff --git a/rust/headless-client/src/uptime/README.md b/rust/bin-shared/src/uptime/README.md similarity index 100% rename from rust/headless-client/src/uptime/README.md rename to rust/bin-shared/src/uptime/README.md diff --git a/rust/headless-client/src/uptime/mod.rs b/rust/bin-shared/src/uptime/mod.rs similarity index 100% rename from rust/headless-client/src/uptime/mod.rs rename to rust/bin-shared/src/uptime/mod.rs diff --git a/rust/gui-client/src-tauri/src/client.rs b/rust/gui-client/src-tauri/src/client.rs index 76ada19fe..1f72930ef 100644 --- a/rust/gui-client/src-tauri/src/client.rs +++ b/rust/gui-client/src-tauri/src/client.rs @@ -177,7 +177,7 @@ fn show_error_dialog(msg: &str) -> Result<()> { /// Don't drop the log handle or logging will stop. fn start_logging(directives: &str) -> Result { let logging_handles = common::logging::setup(directives)?; - let system_uptime_seconds = firezone_headless_client::uptime::get().map(|dur| dur.as_secs()); + let system_uptime_seconds = firezone_bin_shared::uptime::get().map(|dur| dur.as_secs()); tracing::info!( arch = std::env::consts::ARCH, os = std::env::consts::OS, diff --git a/rust/headless-client/src/ipc_service.rs b/rust/headless-client/src/ipc_service.rs index ac0b08a0b..ed9f1e9bf 100644 --- a/rust/headless-client/src/ipc_service.rs +++ b/rust/headless-client/src/ipc_service.rs @@ -167,7 +167,7 @@ fn run_debug_ipc_service(cli: Cli) -> Result<()> { tracing::info!( arch = std::env::consts::ARCH, // version = env!("CARGO_PKG_VERSION"), TODO: Fix once `ipc_service` is moved to `gui-client`. - system_uptime_seconds = crate::uptime::get().map(|dur| dur.as_secs()), + system_uptime_seconds = firezone_bin_shared::uptime::get().map(|dur| dur.as_secs()), ); if !platform::elevation_check()? { bail!("IPC service failed its elevation check, try running as admin / root"); @@ -668,7 +668,7 @@ fn setup_logging( tracing::info!( arch = std::env::consts::ARCH, // version = env!("CARGO_PKG_VERSION"), TODO: Fix once `ipc_service` is moved to `gui-client`. - system_uptime_seconds = crate::uptime::get().map(|dur| dur.as_secs()), + system_uptime_seconds = firezone_bin_shared::uptime::get().map(|dur| dur.as_secs()), %directives ); diff --git a/rust/headless-client/src/lib.rs b/rust/headless-client/src/lib.rs index 76c8a59c9..b01b53482 100644 --- a/rust/headless-client/src/lib.rs +++ b/rust/headless-client/src/lib.rs @@ -32,7 +32,6 @@ mod ipc_service; pub mod known_dirs; // TODO: Move to `bin-shared`? pub mod signals; -pub mod uptime; pub use clear_logs::clear_logs; pub use dns_control::DnsController;