Skip to content

Commit cc330a0

Browse files
committed
feat: add verbose mode to list command
1 parent 633a9c2 commit cc330a0

File tree

3 files changed

+25
-19
lines changed

3 files changed

+25
-19
lines changed

src/cli.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ enum Commands {
1818
List {
1919
/// Show all versions for a given package
2020
name: Option<String>,
21+
22+
/// Show additional information, like image, volumes, binaries, etc.
23+
#[arg(long, short)]
24+
verbose: bool,
2125
},
2226

2327
/// Add a specific version of a package
@@ -72,7 +76,7 @@ pub fn run() {
7276

7377
let result = match &cli.command {
7478
Commands::Info => show_info(),
75-
Commands::List { name } => list_packages(name.as_deref()),
79+
Commands::List { name, verbose } => list_packages(name.as_deref(), *verbose),
7680
Commands::Add {
7781
name,
7882
version,

src/commands.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ pub fn show_info() -> Result<(), Box<dyn Error>> {
2626
Ok(())
2727
}
2828

29-
pub fn list_packages(name: Option<&str>) -> Result<(), Box<dyn Error>> {
29+
pub fn list_packages(name: Option<&str>, verbose: bool) -> Result<(), Box<dyn Error>> {
3030
if let Some(name) = name {
3131
if let Some(package) = packages::Package::load(name)? {
32-
package.print();
32+
package.print(verbose);
3333
Ok(())
3434
} else {
3535
Err(format!(
@@ -42,7 +42,7 @@ pub fn list_packages(name: Option<&str>) -> Result<(), Box<dyn Error>> {
4242
let packages = packages::Package::load_all()?;
4343
if !packages.is_empty() {
4444
for package in &packages {
45-
package.print();
45+
package.print(verbose);
4646
}
4747
Ok(())
4848
} else {

src/packages.rs

+17-15
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,26 @@ impl Package {
4848
format!("{}:{}", self.index.image, self.versions.current)
4949
}
5050

51-
pub fn print(&self) {
51+
pub fn print(&self, verbose: bool) {
5252
println!("- [{}]", self.name);
53-
println!(" - image: {}", self.index.image);
54-
if let Some(volumes) = &self.index.volumes {
55-
println!(" - volumes:");
56-
for volume in volumes {
57-
println!(" - {}:{}", volume.source, volume.target);
53+
if verbose {
54+
println!(" - image: {}", self.index.image);
55+
if let Some(volumes) = &self.index.volumes {
56+
println!(" - volumes:");
57+
for volume in volumes {
58+
println!(" - {}:{}", volume.source, volume.target);
59+
}
5860
}
59-
}
60-
if let Some(binaries) = &self.index.binaries {
61-
println!(" - binaries:");
62-
for binary in binaries {
63-
println!(" - {} -> {}", binary.name, binary.path);
61+
if let Some(binaries) = &self.index.binaries {
62+
println!(" - binaries:");
63+
for binary in binaries {
64+
println!(" - {} -> {}", binary.name, binary.path);
65+
}
66+
}
67+
println!(" - only_shim_binaries: {}", &self.index.only_shim_binaries);
68+
if let Some(current_directory) = &self.index.current_directory {
69+
println!(" - current directory: {}", current_directory.clone());
6470
}
65-
}
66-
println!(" - only_shim_binaries: {}", &self.index.only_shim_binaries);
67-
if let Some(current_directory) = &self.index.current_directory {
68-
println!(" - current directory: {}", current_directory.clone());
6971
}
7072
println!(" - versions:");
7173
for version in &self.versions.versions {

0 commit comments

Comments
 (0)