From d21de3cd252d80bf54a6d0b175122048b8af85fd Mon Sep 17 00:00:00 2001 From: Mag Mell Date: Fri, 26 Jan 2024 17:45:42 +0800 Subject: chore: add feature to allow always disable check update (#1628) * chore: add feature to allow always disable check update In the packaging rules of some distributions, the software's self-update check needs to be permanently turned off This commit will make it easier for these users to * fix: formatting --------- Co-authored-by: Ellie Huxtable --- atuin-client/src/api_client.rs | 8 ++++++-- atuin-client/src/settings.rs | 10 +++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'atuin-client/src') diff --git a/atuin-client/src/api_client.rs b/atuin-client/src/api_client.rs index affb3c98..dc835cfb 100644 --- a/atuin-client/src/api_client.rs +++ b/atuin-client/src/api_client.rs @@ -10,8 +10,8 @@ use reqwest::{ use atuin_common::{ api::{ - AddHistoryRequest, CountResponse, DeleteHistoryRequest, ErrorResponse, IndexResponse, - LoginRequest, LoginResponse, RegisterResponse, StatusResponse, SyncHistoryResponse, + AddHistoryRequest, CountResponse, DeleteHistoryRequest, ErrorResponse, LoginRequest, + LoginResponse, RegisterResponse, StatusResponse, SyncHistoryResponse, }, record::RecordStatus, }; @@ -19,6 +19,7 @@ use atuin_common::{ api::{ATUIN_CARGO_VERSION, ATUIN_HEADER_VERSION, ATUIN_VERSION}, record::{EncryptedData, HostId, Record, RecordIdx}, }; + use semver::Version; use time::format_description::well_known::Rfc3339; use time::OffsetDateTime; @@ -97,7 +98,10 @@ pub async fn login(address: &str, req: LoginRequest) -> Result { Ok(session) } +#[cfg(feature = "check-update")] pub async fn latest_version() -> Result { + use atuin_common::api::IndexResponse; + let url = "https://api.atuin.sh"; let client = reqwest::Client::new(); diff --git a/atuin-client/src/settings.rs b/atuin-client/src/settings.rs index c95c8ba5..122b8d57 100644 --- a/atuin-client/src/settings.rs +++ b/atuin-client/src/settings.rs @@ -402,6 +402,7 @@ impl Settings { } } + #[cfg(feature = "check-update")] fn needs_update_check(&self) -> Result { let last_check = Settings::last_version_check()?; let diff = OffsetDateTime::now_utc() - last_check; @@ -410,6 +411,7 @@ impl Settings { Ok(diff.whole_hours() >= 1) } + #[cfg(feature = "check-update")] async fn latest_version(&self) -> Result { // Default to the current version, and if that doesn't parse, a version so high it's unlikely to ever // suggest upgrading. @@ -440,6 +442,7 @@ impl Settings { } // Return Some(latest version) if an update is needed. Otherwise, none. + #[cfg(feature = "check-update")] pub async fn needs_update(&self) -> Option { if !self.update_check { return None; @@ -463,6 +466,11 @@ impl Settings { None } + #[cfg(not(feature = "check-update"))] + pub async fn needs_update(&self) -> Option { + None + } + pub fn builder() -> Result> { let data_dir = atuin_common::utils::data_dir(); let db_path = data_dir.join("history.db"); @@ -478,7 +486,7 @@ impl Settings { .set_default("session_path", session_path.to_str())? .set_default("dialect", "us")? .set_default("auto_sync", true)? - .set_default("update_check", true)? + .set_default("update_check", cfg!(feature = "check-update"))? .set_default("sync_address", "https://api.atuin.sh")? .set_default("sync_frequency", "10m")? .set_default("search_mode", "fuzzy")? -- cgit v1.3.1