Jelajahi Sumber

fix(config): preserve existing path values in mapper instead of overriding with defaults

The path configuration mapper was incorrectly resetting all properties to
default values when undefined, causing existing configuration to be lost.
This change preserves the current property values and only applies defaults
for newly constructed instances, fixing the configuration persistence
behavior introduced in the recent paths refactoring.
clanker 1 bulan lalu
induk
melakukan
d43e6367c4
2 mengubah file dengan 22 tambahan dan 17 penghapusan
  1. 6 0
      fedora-x86_64.config
  2. 16 17
      src/lib/Paths.vala

+ 6 - 0
fedora-x86_64.config

@@ -0,0 +1,6 @@
+{
+    "is_managed": false,
+    "paths": {
+        "lib": "lib64"
+    }
+}

+ 16 - 17
src/lib/Paths.vala

@@ -201,39 +201,38 @@ namespace Usm {
         }
 
         public static PropertyMapper<Paths> get_mapper() {
-            var defaults = new Paths.defaults();
             return new PropertyMapperBuilder<Paths>()
                 .map<string?>("prefix", o => o.prefix, (o, v) => o.prefix = v)
-                    .when_undefined(o => o.prefix = defaults.prefix)
+                    .when_undefined(o => o.prefix = o.prefix)
                 .map<string?>("bin", o => o.bin, (o, v) => o.bin = v)
-                    .when_undefined(o => o.bin = defaults.bin)
+                    .when_undefined(o => o.bin = o.bin)
                 .map<string?>("include", o => o.include, (o, v) => o.include = v)
-                    .when_undefined(o => o.include = defaults.include)
+                    .when_undefined(o => o.include = o.include)
                 .map<string?>("data", o => o.data, (o, v) => o.data = v)
-                    .when_undefined(o => o.data = defaults.data)
+                    .when_undefined(o => o.data = o.data)
                 .map<string?>("info", o => o.info, (o, v) => o.info = v)
-                    .when_undefined(o => o.info = defaults.info)
+                    .when_undefined(o => o.info = o.info)
                 .map<string?>("lib", o => o.lib, (o, v) => o.lib = v)
-                    .when_undefined(o => o.lib = defaults.lib)
+                    .when_undefined(o => o.lib = o.lib)
                 .map<string?>("canonlib", o => o.canonlib, (o, v) => o.canonlib = v)
-                    .when_undefined(o => o.canonlib = defaults.canonlib)
+                    .when_undefined(o => o.canonlib = o.canonlib)
                 .map<string?>("man", o => o.man, (o, v) => o.man = v)
-                    .when_undefined(o => o.man = defaults.man)
+                    .when_undefined(o => o.man = o.man)
                 .map<string?>("libexec", o => o.libexec, (o, v) => o.libexec = v)
-                    .when_undefined(o => o.libexec = defaults.libexec)
+                    .when_undefined(o => o.libexec = o.libexec)
                 .map<string?>("locale", o => o.locale, (o, v) => o.locale = v)
-                    .when_undefined(o => o.locale = defaults.locale)
+                    .when_undefined(o => o.locale = o.locale)
                 .map<string?>("localState", o => o.local_state, (o, v) => o.local_state = v)
-                    .when_undefined(o => o.local_state = defaults.local_state)
+                    .when_undefined(o => o.local_state = o.local_state)
                 .map<string?>("sbin", o => o.sbin, (o, v) => o.sbin = v)
-                    .when_undefined(o => o.sbin = defaults.sbin)
+                    .when_undefined(o => o.sbin = o.sbin)
                 .map<string?>("sharedState", o => o.shared_state, (o, v) => o.shared_state = v)
-                    .when_undefined(o => o.shared_state = defaults.shared_state)
+                    .when_undefined(o => o.shared_state = o.shared_state)
                 .map<string?>("sysConfig", o => o.sys_config, (o, v) => o.sys_config = v)
-                    .when_undefined(o => o.sys_config = defaults.sys_config)
+                    .when_undefined(o => o.sys_config = o.sys_config)
                 .map<string?>("tags", o => o.tags, (o, v) => o.tags = v)
-                    .when_undefined(o => o.tags = defaults.tags)
-                .set_constructor(() => new Paths.empty())
+                    .when_undefined(o => o.tags = o.tags)
+                .set_constructor(() => new Paths.defaults())
                 .build();
         }
     }