diff options
Diffstat (limited to 'crates/atuin-client')
| -rw-r--r-- | crates/atuin-client/src/database.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/atuin-client/src/database.rs b/crates/atuin-client/src/database.rs index 28d6c0f0..7aa095f7 100644 --- a/crates/atuin-client/src/database.rs +++ b/crates/atuin-client/src/database.rs @@ -32,6 +32,7 @@ use super::{ settings::{FilterMode, SearchMode, Settings}, }; +#[derive(Clone)] pub struct Context { pub session: String, pub cwd: String, @@ -72,6 +73,18 @@ pub async fn current_context() -> eyre::Result<Context> { }) } +impl Context { + pub fn from_history(entry: &History) -> Self { + Context { + session: entry.session.to_string(), + cwd: entry.cwd.to_string(), + hostname: entry.hostname.to_string(), + host_id: String::new(), + git_root: utils::in_git_repo(entry.cwd.as_str()), + } + } +} + fn get_session_start_time(session_id: &str) -> Option<i64> { if let Ok(uuid) = Uuid::parse_str(session_id) && let Some(timestamp) = uuid.get_timestamp() |
