Skip to main content

zoi_cli/cmd/
unpin.rs

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}