Skip to content

Commit a9ad61d

Browse files
authored
fix(profile sync): force copy if sync_mode is overwirte (#555)
closes #531 related #519 When `sync_mode` was `overwirte` we were still making merge to get new values for .ini. Now in `overwrite` mode, a copy is done.
2 parents 0e4e6d1 + 3b9ff5a commit a9ad61d

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

qgis_deployment_toolbelt/jobs/job_profiles_synchronizer.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,9 @@ def sync_installed_profiles_from_downloaded_profiles(
253253
"Installed profiles are going to be overridden by downloaded ones."
254254
)
255255
# copy all downloaded profiles
256-
self.sync_overwrite_local_profiles(profiles_to_copy=downloaded_profiles)
256+
self.sync_overwrite_local_profiles(
257+
profiles_to_copy=downloaded_profiles, overwrite=True
258+
)
257259

258260
else:
259261
logger.debug(
@@ -262,21 +264,18 @@ def sync_installed_profiles_from_downloaded_profiles(
262264
)
263265

264266
def sync_overwrite_local_profiles(
265-
self, profiles_to_copy: tuple[QdtProfile]
267+
self, profiles_to_copy: tuple[QdtProfile], overwrite: bool = False
266268
) -> None:
267269
"""Overwrite local profiles with downloaded ones.
268270
269271
Args:
270272
profiles_to_copy (tuple[QdtProfile]): tuple of profiles to copy
273+
overwrite (bool): overwrite profile if it exists (default False)
271274
"""
272275

273276
# copy downloaded profiles into this
274277
for d in profiles_to_copy:
275-
if d.path_in_qgis.exists():
276-
logger.info(f"Merging {d.folder} to {d.path_in_qgis}")
277-
installed_profile = QdtProfile(folder=d.path_in_qgis)
278-
d.merge_to(installed_profile)
279-
else:
278+
if overwrite:
280279
logger.info(f"Copying {d.folder} to {d.path_in_qgis}")
281280
d.path_in_qgis.mkdir(parents=True, exist_ok=True)
282281
copytree(
@@ -285,3 +284,8 @@ def sync_overwrite_local_profiles(
285284
copy_function=copy2,
286285
dirs_exist_ok=True,
287286
)
287+
288+
# Environment variable will be converted during merge
289+
logger.info(f"Merging {d.folder} to {d.path_in_qgis}")
290+
installed_profile = QdtProfile(folder=d.path_in_qgis)
291+
d.merge_to(installed_profile)

0 commit comments

Comments
 (0)