summaryrefslogtreecommitdiffstats
path: root/atuin-client
diff options
context:
space:
mode:
authorMag Mell <sakiiily@aosc.io>2024-01-26 17:45:42 +0800
committerGitHub <noreply@github.com>2024-01-26 09:45:42 +0000
commitd21de3cd252d80bf54a6d0b175122048b8af85fd (patch)
treeeae5aa9d0bef0f1ba7a335860e015201d608c264 /atuin-client
parent400e1ba23d4b26ebb23b5c41db4983920ecaf9aa (diff)
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 <ellie@elliehuxtable.com>
Diffstat (limited to 'atuin-client')
-rw-r--r--atuin-client/Cargo.toml1
-rw-r--r--atuin-client/src/api_client.rs8
-rw-r--r--atuin-client/src/settings.rs10
3 files changed, 16 insertions, 3 deletions
diff --git a/atuin-client/Cargo.toml b/atuin-client/Cargo.toml
index cbb8d016..e224ad83 100644
--- a/atuin-client/Cargo.toml
+++ b/atuin-client/Cargo.toml
@@ -15,6 +15,7 @@ repository = { workspace = true }
[features]
default = ["sync"]
sync = ["urlencoding", "reqwest", "sha2", "hex"]
+check-update = []
[dependencies]
atuin-common = { path = "../atuin-common", version = "17.2.1" }
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<LoginResponse> {
Ok(session)
}
+#[cfg(feature = "check-update")]
pub async fn latest_version() -> Result<Version> {
+ 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<bool> {
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<Version> {
// 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<Version> {
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<Version> {
+ None
+ }
+
pub fn builder() -> Result<ConfigBuilder<DefaultState>> {
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")?