libwally/commands/
logout.rs1use std::path::PathBuf;
2
3use structopt::StructOpt;
4
5use crate::{auth::AuthStore, manifest::Manifest, package_index::PackageIndex};
6
7#[derive(Debug, StructOpt)]
9pub struct LogoutSubcommand {
10 #[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(®istry, None)?;
20 let api = package_index.config()?.api;
21
22 AuthStore::set_token(api.as_str(), None)?;
23
24 Ok(())
25 }
26}