oxyde_cloud_cli/commands/
logout.rs

1use anyhow::{Context, Result};
2use keyring::Entry;
3
4pub fn logout() -> Result<()> {
5    let keyring_entry = Entry::new("oxyde-cloud", "api-key")
6        .context("Failed to create keyring entry for logout")?;
7
8    if let Err(err) = keyring_entry.delete_credential() {
9        if let keyring::Error::NoEntry = err {
10            // already logged out
11            Ok(())
12        } else {
13            Err(err).context("Failed to delete API key from keyring")
14        }
15    } else {
16        Ok(())
17    }
18}