From 932aa05fbf7e7803a9fe2b4641d845d8b6f1a57c Mon Sep 17 00:00:00 2001 From: Gabriele Musco Date: Mon, 12 Aug 2024 07:38:06 +0200 Subject: [PATCH] feat: explicitly set new clone paths for profile duplicates --- src/profile.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/profile.rs b/src/profile.rs index 626ce0f..a1a49c4 100644 --- a/src/profile.rs +++ b/src/profile.rs @@ -390,31 +390,37 @@ impl Profile { dup.editable = true; return dup; } + let uuid = Self::new_uuid(); + let profile_dir = get_data_dir().join(&uuid); let mut dup = Self { + uuid, name: format!("Duplicate of {}", self.name), xrservice_type: self.xrservice_type.clone(), xrservice_repo: self.xrservice_repo.clone(), xrservice_branch: self.xrservice_branch.clone(), xrservice_cmake_flags: self.xrservice_cmake_flags.clone(), + xrservice_path: profile_dir.join("xrservice"), features: ProfileFeatures { libsurvive: ProfileFeature { + feature_type: ProfileFeatureType::Libsurvive, enabled: self.features.libsurvive.enabled, repo: self.features.libsurvive.repo.clone(), branch: self.features.libsurvive.branch.clone(), - ..Default::default() + path: Some(profile_dir.join("libsurvive")), }, basalt: ProfileFeature { + feature_type: ProfileFeatureType::Basalt, enabled: self.features.basalt.enabled, repo: self.features.basalt.repo.clone(), branch: self.features.basalt.branch.clone(), - ..Default::default() + path: Some(profile_dir.join("basalt")), }, - openhmd: ProfileFeature { + feature_type: ProfileFeatureType::OpenHmd, enabled: self.features.openhmd.enabled, repo: self.features.openhmd.repo.clone(), branch: self.features.openhmd.branch.clone(), - ..Default::default() + path: Some(profile_dir.join("openhmd")), }, mercury_enabled: self.features.mercury_enabled, }, @@ -424,6 +430,7 @@ impl Profile { lighthouse_driver: self.lighthouse_driver, opencomposite_repo: self.opencomposite_repo.clone(), opencomposite_branch: self.opencomposite_branch.clone(), + opencomposite_path: profile_dir.join("opencomposite"), skip_dependency_check: self.skip_dependency_check, xrservice_launch_options: self.xrservice_launch_options.clone(), ..Default::default()