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

Commit 74a6a0a3 authored by Bob Badour's avatar Bob Badour Committed by Joe Wang
Browse files

Add support for combining the notices from 2 roots.

Apparently needed for cts tests due to apks putting intermediate files under
TARGET_OUT even when going to HOST_OUT.

Test: m with and without change verified no differences in notice files
Bug: 141258651

Change-Id: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
(cherry picked from commit 5e9e1fbe)
Merged-In: Iea50b6bd9af9452a2600c97e2f7cb89218b9be7f
parent 5486ee73
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1427,7 +1427,7 @@ $(3) : $(6) $(BUILD_SYSTEM)/Makefile build/make/tools/generate-notice-files.py
	            $(if $(filter $(1),xml_system),-i system --xml-output, \
	              $(if $(filter $(1),xml_odm),-i odm --xml-output, \
	                --html-output)))))) $(3) \
	    -t $$(PRIVATE_MESSAGE) -s $$(PRIVATE_DIR)/src
	    -t $$(PRIVATE_MESSAGE) $$(foreach dir,$$(sort $$(PRIVATE_DIR)), -s $$(dir)/src)
notice_files: $(2) $(3)
endef

+36 −35
Original line number Diff line number Diff line
@@ -73,10 +73,10 @@ body { padding: 0; font-family: sans-serif; }
</style>
"""

def combine_notice_files_html(file_hash, input_dir, output_filename):
def combine_notice_files_html(file_hash, input_dirs, output_filename):
    """Combine notice files in FILE_HASH and output a HTML version to OUTPUT_FILENAME."""

    SRC_DIR_STRIP_RE = re.compile(input_dir + "(/.*).txt")
    SRC_DIR_STRIP_RE = re.compile("(?:" + "|".join(input_dirs) + ")(/.*).txt")

    # Set up a filename to row id table (anchors inside tables don't work in
    # most browsers, but href's to table row ids do)
@@ -131,10 +131,10 @@ def combine_notice_files_html(file_hash, input_dir, output_filename):
    print >> output_file, "</body></html>"
    output_file.close()

def combine_notice_files_text(file_hash, input_dir, output_filename, file_title):
def combine_notice_files_text(file_hash, input_dirs, output_filename, file_title):
    """Combine notice files in FILE_HASH and output a text version to OUTPUT_FILENAME."""

    SRC_DIR_STRIP_RE = re.compile(input_dir + "(/.*).txt")
    SRC_DIR_STRIP_RE = re.compile("(?:" + "|".join(input_dirs) + ")(/.*).txt")
    output_file = open(output_filename, "wb")
    print >> output_file, file_title
    for value in file_hash:
@@ -146,10 +146,10 @@ def combine_notice_files_text(file_hash, input_dir, output_filename, file_title)
      print >> output_file, open(value[0]).read()
    output_file.close()

def combine_notice_files_xml(files_with_same_hash, input_dir, output_filename):
def combine_notice_files_xml(files_with_same_hash, input_dirs, output_filename):
    """Combine notice files in FILE_HASH and output a XML version to OUTPUT_FILENAME."""

    SRC_DIR_STRIP_RE = re.compile(input_dir + "(/.*).txt")
    SRC_DIR_STRIP_RE = re.compile("(?:" + "|".join(input_dirs) + ")(/.*).txt")

    # Set up a filename to row id table (anchors inside tables don't work in
    # most browsers, but href's to table row ids do)
@@ -205,7 +205,7 @@ def get_args():
        '-t', '--title', required=True,
        help='The file title.')
    parser.add_argument(
        '-s', '--source-dir', required=True,
        '-s', '--source-dir', required=True, action='append',
        help='The directory containing notices.')
    parser.add_argument(
        '-i', '--included-subdirs', action='append',
@@ -229,8 +229,9 @@ def main(argv):
    if args.excluded_subdirs is not None:
        excluded_subdirs = args.excluded_subdirs

    input_dirs = [os.path.normpath(source_dir) for source_dir in args.source_dir]
    # Find all the notice files and md5 them
    input_dir = os.path.normpath(args.source_dir)
    for input_dir in input_dirs:
        files_with_same_hash = defaultdict(list)
        for root, dir, files in os.walk(input_dir):
            for file in files:
@@ -255,13 +256,13 @@ def main(argv):

        filesets = [sorted(files_with_same_hash[md5]) for md5 in sorted(files_with_same_hash.keys())]

    combine_notice_files_text(filesets, input_dir, txt_output_file, file_title)
    combine_notice_files_text(filesets, input_dirs, txt_output_file, file_title)

    if html_output_file is not None:
        combine_notice_files_html(filesets, input_dir, html_output_file)
        combine_notice_files_html(filesets, input_dirs, html_output_file)

    if xml_output_file is not None:
        combine_notice_files_xml(files_with_same_hash, input_dir, xml_output_file)
        combine_notice_files_xml(files_with_same_hash, input_dirs, xml_output_file)

if __name__ == "__main__":
    main(sys.argv)