Skip to main content

libwally/commands/
logout.rs

1use std::path::PathBuf;
2
3use structopt::StructOpt;
4
5use crate::{auth::AuthStore, manifest::Manifest, package_index::PackageIndex};
6
7/// Log out of a registry.
8#[derive(Debug, StructOpt)]
9pub struct LogoutSubcommand {
10    /// Path to a project to decide how to logout
11    #[structopt(long = "project-path", default_value = ".")]
12    pub project_path: PathBuf,
13}
14
15impl LogoutSubcommand {
16    pub fn run(self) -> anyhow::Result<()> {
17        let manifest = Manifest::load(&self.project_path)?;
18        let registry = url::Url::parse(&manifest.package.registry)?;
19        let package_index = PackageIndex::new(&registry, None)?;
20        let api = package_index.config()?.api;
21
22        AuthStore::set_token(api.as_str(), None)?;
23
24        Ok(())
25    }
26}