Kaynağa Gözat

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 ay önce
ebeveyn
işleme
d43e6367c4
2 değiştirilmiş dosya ile 22 ekleme ve 17 silme
  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();
         }
     }