1use crate::pkg::{local, resolve};
2use anyhow::{Result, anyhow};
3use colored::*;
4
5pub fn run(package_name: &str) -> Result<()> {
6 let (pkg_meta, _, _, _, _, _, _) =
7 resolve::resolve_package_and_version(package_name, None, false, false)?;
8
9 let installed_packages = local::get_installed_packages()?;
10
11 let Some(pkg) = installed_packages.iter().find(|p| p.name == pkg_meta.name) else {
12 return Err(anyhow!("Package '{}' is not installed.", package_name));
13 };
14
15 println!("Files for {} {}:", pkg.name.cyan(), pkg.version.yellow());
16
17 let version_dir = local::get_package_version_dir(
18 pkg.scope,
19 &pkg.registry_handle,
20 &pkg.repo,
21 &pkg.name,
22 &pkg.version,
23 )?;
24
25 if pkg.installed_files.is_empty() {
26 println!("(No files recorded for this package)");
27 } else {
28 let mut sorted_files = pkg.installed_files.clone();
29 sorted_files.sort();
30 for file in &sorted_files {
31 let expanded = crate::pkg::utils::expand_placeholders(file, &version_dir, pkg.scope)?;
32 println!("{}", expanded);
33 }
34 }
35
36 Ok(())
37}