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