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

Commit 79a45fa1 authored by Zhi Dou's avatar Zhi Dou Committed by Gerrit Code Review
Browse files

Merge "overrideflags: change local override list name" into main

parents 130bf250 b6697368
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -28,12 +28,12 @@ import sys


_VALUE_LIST_TEMPLATE: str = """
VALUE_LIST_LIST = [{}]
ACONFIG_VALUES_LIST_LOCAL = [{}]
"""

_ACONFIG_VALUES_TEMPLATE: str = """
aconfig_values {{
    name: "aconfig-local-{}",
    name: "{}",
    package: "{}",
    srcs: [
        "{}",
@@ -41,6 +41,8 @@ aconfig_values {{
}}
"""

_ACONFIG_VALUES_NAME_SUFFIX: str = "aconfig-local-override-{}"

_PACKAGE_REGEX = re.compile(r"^package\:\s*\"([\w\d\.]+)\"")
_ANDROID_BP_FILE_NAME = r"Android.bp"

@@ -61,13 +63,17 @@ def _parse_packages(file: pathlib.Path) -> set[str]:

def _create_android_bp(packages: set[str], file_name: str) -> str:
  android_bp = ""
  value_list = ",\n    ".join(map(lambda n: "aconfig-local-" + n, packages))
  value_list = ",\n    ".join(
      map(f'"{_ACONFIG_VALUES_NAME_SUFFIX}"'.format, packages)
  )
  if value_list:
    value_list = "\n    " + value_list + "\n"
  android_bp += _VALUE_LIST_TEMPLATE.format(value_list) + "\n"

  for package in packages:
    android_bp += _ACONFIG_VALUES_TEMPLATE.format(package, package, file_name)
    android_bp += _ACONFIG_VALUES_TEMPLATE.format(
        _ACONFIG_VALUES_NAME_SUFFIX.format(package), package, file_name
    )
    android_bp += "\n"

  return android_bp
@@ -78,8 +84,18 @@ def _write_android_bp(new_android_bp: str, out: pathlib.Path) -> None:
    out.mkdir(parents=True, exist_ok=True)

  output = out.joinpath(_ANDROID_BP_FILE_NAME)
  with open(output, "w+") as f:
    f.write(new_android_bp)
  with open(output, "r+", encoding="utf8") as file:
    lines = []
    for line in file:
      line = line.rstrip("\n")
      if line.startswith("ACONFIG_VALUES_LIST_LOCAL"):
        break
      lines.append(line)
    # Overwrite the file with the updated contents.
    file.seek(0)
    file.truncate()
    file.write("\n".join(lines))
    file.write(new_android_bp)


def main(args):