Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4f62e38 authored by LaMont Jones's avatar LaMont Jones Committed by Gerrit Code Review
Browse files

Merge "release_config: cleanup how default values are used" into main

parents 1c53ba70 979c1bdf
Loading
Loading
Loading
Loading
+13 −15
Original line number Diff line number Diff line
@@ -179,18 +179,23 @@ def release_config(all_flags, all_values):
    validate(all_flags, _all_flags_schema)
    validate(all_values, _all_values_schema)

    # Final values.
    values = {}
    # Validate flags
    flag_names = []
    flags_dict = {}
    for flag in all_flags:
        if flag["name"] in flag_names:
            if equal_flag_declaration(flag, flags_dict[flag["name"]]):
        name = flag["name"]
        if name in flag_names:
            if equal_flag_declaration(flag, flags_dict[name]):
                continue
            else:
                fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"] +
                     " (declared first in " + flags_dict[flag["name"]]["declared_in"] + ")")
        flag_names.append(flag["name"])
        flags_dict[flag["name"]] = flag
                fail(flag["declared_in"] + ": Duplicate declaration of flag " + name +
                     " (declared first in " + flags_dict[name]["declared_in"] + ")")
        flag_names.append(name)
        flags_dict[name] = flag
        # Set the flag value to the default value.
        values[name] = {"name": name, "value": _format_value(flag["default"]), "set_in": flag["declared_in"]}

    # Record which flags go on which partition
    partitions = {}
@@ -206,7 +211,6 @@ def release_config(all_flags, all_values):

    # Generate final values.
    # Only declared flags may have a value.
    values = {}
    for value in all_values:
        name = value["name"]
        if name not in flag_names:
@@ -227,19 +231,13 @@ def release_config(all_flags, all_values):
    for partition, names in partitions.items():
        result["_ALL_RELEASE_FLAGS.PARTITIONS." + partition] = names
    for flag in all_flags:
        if flag["name"] in values:
            val = values[flag["name"]]["value"]
            set_in = values[flag["name"]]["set_in"]
        else:
            val = flag["default"]
            set_in = flag["declared_in"]
        val = _format_value(val)
        val = _format_value(values[flag["name"]]["value"])
        result[flag["name"]] = val
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".PARTITIONS"] = flag["partitions"]
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DEFAULT"] = _format_value(flag["default"])
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".VALUE"] = val
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DECLARED_IN"] = flag["declared_in"]
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".SET_IN"] = set_in
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".SET_IN"] = values[flag["name"]]["set_in"]
        result["_ALL_RELEASE_FLAGS." + flag["name"] + ".ORIGIN"] = flag["origin"]

    return result