1use crate::pkg::{pin, resolve};
2use anyhow::Result;
3use colored::*;
4
5pub fn run(source: &str) -> Result<()> {
6 let (pkg, _, _, _, _registry_handle, _, _) =
7 resolve::resolve_package_and_version(source, None, false, false)?;
8 let mut pinned_packages = pin::get_pinned_packages()?;
9
10 let initial_len = pinned_packages.len();
11 pinned_packages.retain(|p| p.source != pkg.name);
12
13 if pinned_packages.len() == initial_len {
14 println!("Package '{}' was not pinned.", pkg.name);
15 return Ok(());
16 }
17
18 pin::write_pinned_packages(&pinned_packages)?;
19
20 println!("Unpinned {}", pkg.name.green());
21 Ok(())
22}