zoi/cmd/
unpin.rs

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}