diff options
| author | Ellie Huxtable <ellie@atuin.sh> | 2026-02-04 13:26:06 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-04 13:26:06 -0800 |
| commit | 57b542e8ed4335e5f66b5e008d9a8e90776ebffb (patch) | |
| tree | af8512d588023c09301e0505ad81653a21fad70f /crates/atuin-client/src/logout.rs | |
| parent | feat: Add a parameter to the sync to specify the download/upload page (#2408) (diff) | |
| download | atuin-57b542e8ed4335e5f66b5e008d9a8e90776ebffb.zip | |
feat: replace several files with a sqlite db (#3128)
These files have been known to have corruption issues. SQLite will
perform better across filesystems for reads/writes across threads, and
will lock as expected.
I've also put the session file in there, though I'm 50/50 on it - I'll
be replacing it with keyring storage asap anyway.
The key file is _not_ included. It should ~never be changed, and should
be easy for the user to secure + manage themselves
In the future, instead of creating more files, we can just use this as a
kv store
Resolves https://github.com/atuinsh/atuin/issues/2336, resolves
https://github.com/atuinsh/atuin/issues/1650
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
Diffstat (limited to 'crates/atuin-client/src/logout.rs')
| -rw-r--r-- | crates/atuin-client/src/logout.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/crates/atuin-client/src/logout.rs b/crates/atuin-client/src/logout.rs index fe1a4d23..f720b302 100644 --- a/crates/atuin-client/src/logout.rs +++ b/crates/atuin-client/src/logout.rs @@ -1,13 +1,12 @@ -use eyre::{Context, Result}; -use fs_err::remove_file; +use eyre::Result; use crate::settings::Settings; -pub fn logout(settings: &Settings) -> Result<()> { - let session_path = settings.session_path.as_str(); +pub async fn logout() -> Result<()> { + let meta = Settings::meta_store().await?; - if settings.logged_in() { - remove_file(session_path).context("Failed to remove session file")?; + if meta.logged_in().await? { + meta.delete_session().await?; println!("You have logged out!"); } else { println!("You are not logged in"); |
