oxyde_cloud_cli/commands/logout.rs
1use keyring::Entry;
2use thiserror::Error;
3
4#[derive(Debug, Error)]
5pub enum Error {
6 #[error("Keyring error: {0}")]
7 Keyring(#[from] keyring::Error),
8}
9
10pub fn logout() -> Result<(), Error> {
11 let keyring_entry = Entry::new("oxyde-cloud", "api-key")?;
12
13 if let Err(err) = keyring_entry.delete_credential() {
14 if let keyring::Error::NoEntry = err {
15 // already logged out
16 Ok(())
17 } else {
18 Err(err.into())
19 }
20 } else {
21 Ok(())
22 }
23}