Selaa lähdekoodia

fix(manifest): ensure parent directories exist before copying files and avoid creating existing directories

clanker 1 kuukausi sitten
vanhempi
sitoutus
abc4e11674
1 muutettua tiedostoa jossa 5 lisäystä ja 1 poistoa
  1. 5 1
      src/lib/Manifest.vala

+ 5 - 1
src/lib/Manifest.vala

@@ -420,12 +420,16 @@ namespace Usm {
                         if(dest.query_exists()) {
                             dest.delete();
                         }
+                        var parent = src.get_parent();
+                        if(!parent.query_exists()) {
+                            parent.make_directory_with_parents(null);
+                        }
                         src.copy(dest, FileCopyFlags.ALL_METADATA, null, (c, t) => callback(resource.key, resources_installed, resource_count, (float)c / (float)t));
                     }
                 }
                 else if(resource.value.file_type == Usm.ManifestFileType.DIRECTORY) {
                     var dest = File.new_for_path(path);
-                    if(!dry_run) {
+                    if(!dry_run && !dest.query_exists()) {
                         dest.make_directory();
                     }
                 }