Compare commits

..

2 Commits

Author SHA1 Message Date
Russell c2f1ec0060 Fixed a bug where the package manager name was hardcoded 2025-07-28 17:05:10 +00:00
Russell 1cd3ea67f1 Updated the justfile here 2025-07-28 17:03:01 +00:00
2 changed files with 41 additions and 9 deletions

View File

@ -14,3 +14,6 @@ run mode="quiet":
build: build:
cargo build --release cargo build --release
clean:
cargo clean

View File

@ -136,16 +136,45 @@ fn handle_package_command(
fn handle_packages_command( fn handle_packages_command(
managers: &[Box<dyn PackageManager>], managers: &[Box<dyn PackageManager>],
_source_filter: Option<String> source_filter: Option<String> // Removed the underscore!
) -> Result<(), Box<dyn std::error::Error>> { ) -> Result<(), Box<dyn std::error::Error>> {
if let Some(dnf) = managers.iter().find(|m| m.name() == "dnf") { if let Some(source_name) = source_filter {
let packages = dnf.get_installed_packages()?; // Filter by specific source
println!("Installed packages ({} total):", packages.len()); let source_type = match source_name.to_lowercase().as_str() {
for package in packages.iter() { "dnf" => PackageSource::Dnf,
println!(" {} {} ({})", "flatpak" => PackageSource::Flatpak,
package.name, "apt" => PackageSource::Apt,
package.version, "snap" => PackageSource::Snap,
package.source.name()); _ => {
println!("Unknown source: {}. Available: dnf, flatpak, apt, snap", source_name);
return Ok(());
}
};
// Find manager for this source
if let Some(manager) = managers.iter().find(|m| m.source_type() == source_type) {
let packages = manager.get_installed_packages()?;
println!("{} packages ({} total):", source_name, packages.len());
for package in packages.iter() {
println!(" {} {}", package.name, package.version);
}
} else {
println!("No {} package manager found or available", source_name);
}
} else {
// Show all packages from all managers
for manager in managers {
match manager.get_installed_packages() {
Ok(packages) => {
println!("\n{} packages ({} total):", manager.name(), packages.len());
for package in packages.iter() {
println!(" {} {}", package.name, package.version);
}
}
Err(e) => {
println!("Error getting packages from {}: {}", manager.name(), e);
}
}
} }
} }
Ok(()) Ok(())