nex-pkg 0.22.0

Package manager UX for nix-darwin + homebrew
Documentation
use anyhow::Result;

use crate::armory_lock;

pub fn status() -> Result<()> {
    let lock = armory_lock::read_package_lock()?;
    println!("schema: {}", lock.schema);
    println!("registries:");
    for registry in &lock.registries {
        println!("  - {} ({})", registry.name, registry.url);
    }
    println!("roots:");
    for root in &lock.roots {
        println!("  - {}", root.package_ref);
    }
    println!("packages:");
    for package in &lock.packages {
        let state = if package.verified && package.path.is_some() {
            "installed"
        } else {
            "pending"
        };
        println!("  - {} [{}]", package.package_ref, state);
        if let Some(version) = &package.version {
            println!("      version: {version}");
        }
        if let Some(digest) = &package.digest {
            println!("      digest: {digest}");
        }
        if let Some(path) = &package.path {
            println!("      path: {path}");
        }
    }
    Ok(())
}