aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command/show_command.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-31 21:34:47 +0900
committernsfisis <nsfisis@gmail.com>2026-06-01 01:45:00 +0900
commit20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d (patch)
treed1fc3aaee3b2829d71f49581e1abc86ee62e525f /crates/shirabe/src/command/show_command.rs
parent29df13733ae4acfd2b172bc9fd9ac9fd28efa013 (diff)
downloadphp-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.gz
php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.zst
php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.zip
fix(package): port every PHP clone operator to handle dup()HEADmain
Diffstat (limited to 'crates/shirabe/src/command/show_command.rs')
-rw-r--r--crates/shirabe/src/command/show_command.rs28
1 files changed, 16 insertions, 12 deletions
diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs
index 781ee20..e7fcfe1 100644
--- a/crates/shirabe/src/command/show_command.rs
+++ b/crates/shirabe/src/command/show_command.rs
@@ -212,8 +212,9 @@ impl ShowCommand {
&& input.get_option("locked").as_bool() != Some(true)
{
let composer = self.require_composer(None, None)?;
- let package: crate::package::RootPackageInterfaceHandle =
- composer.borrow_partial().get_package().clone();
+ let package = crate::package::RootPackageInterfaceHandle::dup(
+ composer.borrow_partial().get_package(),
+ );
if input.get_option("name-only").as_bool() == Some(true) {
self.get_io().write(&package.get_name());
@@ -381,14 +382,15 @@ impl ShowCommand {
};
let root_pkg = composer_local.get_package();
- let root_repo: RepositoryInterfaceHandle =
- if input.get_option("self").as_bool() == Some(true) {
- RepositoryInterfaceHandle::new(RootPackageRepository::new(
- composer_local.get_package().clone(),
- ))
- } else {
- RepositoryInterfaceHandle::new(InstalledArrayRepository::new()?)
- };
+ let root_repo: RepositoryInterfaceHandle = if input.get_option("self").as_bool()
+ == Some(true)
+ {
+ RepositoryInterfaceHandle::new(RootPackageRepository::new(
+ crate::package::RootPackageInterfaceHandle::dup(composer_local.get_package()),
+ ))
+ } else {
+ RepositoryInterfaceHandle::new(InstalledArrayRepository::new()?)
+ };
if input.get_option("no-dev").as_bool() == Some(true) {
let local_packages = composer_local
.get_repository_manager()
@@ -401,8 +403,10 @@ impl ShowCommand {
false,
Vec::new(),
);
- let cloned: Vec<crate::package::PackageInterfaceHandle> =
- packages.into_iter().map(|p| p.into()).collect();
+ let cloned: Vec<crate::package::PackageInterfaceHandle> = packages
+ .iter()
+ .map(crate::package::PackageInterfaceHandle::dup)
+ .collect();
installed_repo = RepositoryInterfaceHandle::new(InstalledRepository::new(vec![
root_repo.clone(),
RepositoryInterfaceHandle::new(InstalledArrayRepository::new_with_packages(