aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/command')
-rw-r--r--crates/shirabe/src/command/base_dependency_command.rs8
-rw-r--r--crates/shirabe/src/command/check_platform_reqs_command.rs4
-rw-r--r--crates/shirabe/src/command/home_command.rs4
-rw-r--r--crates/shirabe/src/command/show_command.rs28
-rw-r--r--crates/shirabe/src/command/suggests_command.rs4
5 files changed, 29 insertions, 19 deletions
diff --git a/crates/shirabe/src/command/base_dependency_command.rs b/crates/shirabe/src/command/base_dependency_command.rs
index 0b89387..177b0e6 100644
--- a/crates/shirabe/src/command/base_dependency_command.rs
+++ b/crates/shirabe/src/command/base_dependency_command.rs
@@ -55,7 +55,9 @@ pub trait BaseDependencyCommand: BaseCommand {
let mut repos: Vec<crate::repository::RepositoryInterfaceHandle> =
vec![crate::repository::RepositoryInterfaceHandle::new(
- RootPackageRepository::new(composer.get_package().clone()),
+ RootPackageRepository::new(crate::package::RootPackageInterfaceHandle::dup(
+ composer.get_package(),
+ )),
)];
if input.get_option("locked").as_bool().unwrap_or(false) {
@@ -159,7 +161,9 @@ pub trait BaseDependencyCommand: BaseCommand {
) {
installed_repo.add_repository(
crate::repository::RepositoryInterfaceHandle::new(
- InstalledArrayRepository::new_with_packages(vec![r#match.into()])?,
+ InstalledArrayRepository::new_with_packages(vec![
+ crate::package::PackageInterfaceHandle::dup(&r#match),
+ ])?,
),
)?;
} else if PlatformRepository::is_platform_package(&needle) {
diff --git a/crates/shirabe/src/command/check_platform_reqs_command.rs b/crates/shirabe/src/command/check_platform_reqs_command.rs
index e53727d..bfef6a5 100644
--- a/crates/shirabe/src/command/check_platform_reqs_command.rs
+++ b/crates/shirabe/src/command/check_platform_reqs_command.rs
@@ -112,7 +112,9 @@ impl CheckPlatformReqsCommand {
}
}
- let root_pkg_repo = RootPackageRepository::new(composer.get_package().clone());
+ let root_pkg_repo = RootPackageRepository::new(
+ crate::package::RootPackageInterfaceHandle::dup(composer.get_package()),
+ );
let installed_repo = InstalledRepository::new(vec![
installed_repo_base,
crate::repository::RepositoryInterfaceHandle::new(root_pkg_repo),
diff --git a/crates/shirabe/src/command/home_command.rs b/crates/shirabe/src/command/home_command.rs
index 067af8f..e037487 100644
--- a/crates/shirabe/src/command/home_command.rs
+++ b/crates/shirabe/src/command/home_command.rs
@@ -207,7 +207,9 @@ impl HomeCommand {
let composer = crate::command::composer_full(&composer);
let mut repos: Vec<crate::repository::RepositoryInterfaceHandle> = vec![];
repos.push(crate::repository::RepositoryInterfaceHandle::new(
- RootPackageRepository::new(composer.get_package().clone()),
+ RootPackageRepository::new(crate::package::RootPackageInterfaceHandle::dup(
+ composer.get_package(),
+ )),
));
// TODO(phase-b): get_local_repository / get_repositories return shared refs; needs Rc<dyn ...> migration
return Ok(repos);
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(
diff --git a/crates/shirabe/src/command/suggests_command.rs b/crates/shirabe/src/command/suggests_command.rs
index 0aead77..2091608 100644
--- a/crates/shirabe/src/command/suggests_command.rs
+++ b/crates/shirabe/src/command/suggests_command.rs
@@ -48,11 +48,9 @@ impl SuggestsCommand {
let composer = self.require_composer(None, None)?;
let mut composer = crate::command::composer_full_mut(&composer);
- let root_package_handle: crate::package::RootPackageInterfaceHandle =
- composer.get_package().clone();
let mut installed_repos: Vec<RepositoryInterfaceHandle> =
vec![RepositoryInterfaceHandle::new(RootPackageRepository::new(
- root_package_handle,
+ crate::package::RootPackageInterfaceHandle::dup(composer.get_package()),
))];
if composer.get_locker().borrow_mut().is_locked() {