Эх сурвалжийг харах

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 сар өмнө
parent
commit
d43e6367c4
2 өөрчлөгдсөн 22 нэмэгдсэн , 17 устгасан
  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();
         }
     }