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