aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-client/src
diff options
context:
space:
mode:
Diffstat (limited to 'atuin-client/src')
-rw-r--r--atuin-client/src/api_client.rs2
-rw-r--r--atuin-client/src/history.rs4
-rw-r--r--atuin-client/src/sync.rs9
3 files changed, 13 insertions, 2 deletions
diff --git a/atuin-client/src/api_client.rs b/atuin-client/src/api_client.rs
index d907265b..528d1611 100644
--- a/atuin-client/src/api_client.rs
+++ b/atuin-client/src/api_client.rs
@@ -10,10 +10,10 @@ use atuin_common::api::{
AddHistoryRequest, CountResponse, LoginRequest, LoginResponse, RegisterResponse,
SyncHistoryResponse,
};
-use atuin_common::utils::hash_str;
use crate::encryption::{decode_key, decrypt};
use crate::history::History;
+use crate::sync::hash_str;
static APP_USER_AGENT: &str = concat!("atuin/", env!("CARGO_PKG_VERSION"),);
diff --git a/atuin-client/src/history.rs b/atuin-client/src/history.rs
index 6610b988..c7bf6111 100644
--- a/atuin-client/src/history.rs
+++ b/atuin-client/src/history.rs
@@ -45,4 +45,8 @@ impl History {
hostname,
}
}
+
+ pub fn success(&self) -> bool {
+ self.exit == 0 || self.duration == -1
+ }
}
diff --git a/atuin-client/src/sync.rs b/atuin-client/src/sync.rs
index 9e749614..23f552e5 100644
--- a/atuin-client/src/sync.rs
+++ b/atuin-client/src/sync.rs
@@ -3,13 +3,20 @@ use std::convert::TryInto;
use chrono::prelude::*;
use eyre::Result;
-use atuin_common::{api::AddHistoryRequest, utils::hash_str};
+use atuin_common::api::AddHistoryRequest;
use crate::api_client;
use crate::database::Database;
use crate::encryption::{encrypt, load_encoded_key, load_key};
use crate::settings::{Settings, HISTORY_PAGE_SIZE};
+pub fn hash_str(string: &str) -> String {
+ use sha2::{Digest, Sha256};
+ let mut hasher = Sha256::new();
+ hasher.update(string.as_bytes());
+ hex::encode(hasher.finalize())
+}
+
// Currently sync is kinda naive, and basically just pages backwards through
// history. This means newly added stuff shows up properly! We also just use
// the total count in each database to indicate whether a sync is needed.