Ver Fonte

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 há 1 mês atrás
pai
commit
d43e6367c4
2 ficheiros alterados com 22 adições e 17 exclusões
  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();
         }
     }