diff options
Diffstat (limited to 'crates/shirabe/src/command/audit_command.rs')
| -rw-r--r-- | crates/shirabe/src/command/audit_command.rs | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/crates/shirabe/src/command/audit_command.rs b/crates/shirabe/src/command/audit_command.rs index d8666bb..236ecdc 100644 --- a/crates/shirabe/src/command/audit_command.rs +++ b/crates/shirabe/src/command/audit_command.rs @@ -9,6 +9,8 @@ use crate::composer::PartialComposerHandle; use crate::console::input::InputOption; use crate::io::IOInterfaceImmutable; use crate::repository::CanonicalPackagesTrait; +use crate::repository::InstalledRepository; +use crate::repository::RepositoryInterface; use crate::repository::RepositorySet; use crate::repository::RepositoryUtils; use shirabe_external_packages::symfony::console::command::command::Command; @@ -268,11 +270,27 @@ impl AuditCommand { return locked_repo.borrow_mut().get_canonical_packages(); } - let _root_pkg = composer.get_package(); - // TODO(phase-c): InstalledRepository::new expects Vec<Box<dyn RepositoryInterface>>, but - // get_local_repository returns &dyn InstalledRepositoryInterface. Conversion requires - // either cloning into a Box or restructuring InstalledRepository constructor. - let _ = RepositoryUtils::filter_required_packages; - todo!("audit get_packages non-locked branch needs installed-repo conversion") + let root_pkg = composer.get_package(); + let local_repo = composer + .get_repository_manager() + .borrow() + .get_local_repository(); + let mut installed_repo = InstalledRepository::new(vec![local_repo]); + + if input + .borrow() + .get_option("no-dev")? + .as_bool() + .unwrap_or(false) + { + return Ok(RepositoryUtils::filter_required_packages( + &installed_repo.get_packages()?, + root_pkg.clone().into(), + false, + vec![], + )); + } + + installed_repo.get_packages() } } |
