rgen_cli_lib/cmds/
packs.rs1use anyhow::Result;
2use rgen_core::LockfileManager;
3use std::env;
4
5pub fn run() -> Result<()> {
6 let current_dir = env::current_dir()?;
8 let lockfile_manager = LockfileManager::new(¤t_dir);
9
10 let installed_packs = lockfile_manager.list()?;
12
13 if installed_packs.is_empty() {
14 println!("No rpacks installed in this project");
15 return Ok(());
16 }
17
18 println!("Installed rpacks ({}):", installed_packs.len());
19 println!();
20
21 println!(
23 "{:<40} {:<12} {:<20} SHA256",
24 "ID", "VERSION", "SOURCE"
25 );
26 println!("{}", "-".repeat(80));
27
28 for pack in installed_packs {
30 let source = if pack.source.len() > 20 {
31 format!("{}...", &pack.source[..17])
32 } else {
33 pack.source
34 };
35
36 let sha256 = if pack.sha256.len() > 20 {
37 format!("{}...", &pack.sha256[..17])
38 } else {
39 pack.sha256
40 };
41
42 println!(
43 "{:<40} {:<12} {:<20} {}",
44 pack.id, pack.version, source, sha256
45 );
46 }
47
48 Ok(())
49}