#!/usr/bin/env python import sys import os import re import urlparse def usage(): message = """ usage: {program} inDir outDir inDir: directory containing .ht files outDir: target for the new files""" print(message.format(program = os.path.basename(sys.argv[0]))) def parseFile(filename): file = open(filename, "r") data = file.readlines() data = [line.rstrip('\n') for line in data] pairs = {} regEx = re.compile(r"^(\S+)\s(\S+)\s(\S+)\s((?:\s*\S*)+)$") old_line = None for line in data: if len(line) > 0: if old_line is not None: print(filename) # print("failed to parse line") # print(old_line) line = old_line + line print(line) old_line = None split_line = regEx.split(line) # print(split_line) # print(urlparse.unquote(split_line[2])) # print(split_line[4]) if (old_line is None and split_line[4] == "" and split_line[3] != "0"): print(line) print(split_line) old_line = line else: pairs[urlparse.unquote(split_line[2])] = split_line[4] assert(len(split_line) == 6) # print data # print(pairs) return pairs def parseFiles(dir): strings = [] for files in os.listdir(dir): if files.endswith(".ht"): string = parseFile(os.path.join(dir,files)) print(files) #print string strings.append([files, string]) return strings def extractSharedEntries(strings): first_dict = strings[0][1] shared_dict = {} #print(first_dict) for key, value in first_dict.iteritems(): # check that the entry in the same in all dics is_in_all_dicts = True for dict_file_pair in strings: dict = dict_file_pair[1] if not dict.has_key(key): is_in_all_dicts = False elif not dict[key] == value: print("Element with different values") print(key) is_in_all_dicts = False if is_in_all_dicts: shared_dict[key] = value #print(shared_dict) for dict_file_pair in strings: for key in shared_dict.iterkeys(): dict_file_pair[1].pop(key) strings.append(["shared.ht", shared_dict]) return strings def writeOutFiles(dir, strings): for string in strings: file_name_base = string[0] file_name_base = file_name_base.replace(".ht", ".properties") file_name = os.path.join(dir, file_name_base) file = open(file_name, "w") for key, value in string[1].iteritems(): try: file.write(key) file.write("=") file.write(value) file.write("\n") except UnicodeDecodeError: print(key) print(value) file.close() def main (args): if(len(args) != 3): usage() sys.exit(1) strings = parseFiles(args[1]) new_strings = extractSharedEntries(strings) writeOutFiles(args[2], new_strings) if __name__ == "__main__": main(sys.argv) ion value='distro/collabora/co-24.04.8'>distro/collabora/co-24.04.8 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/ucb/Library_cached1.mk
17adb832704ada89ae6d889ad31ae502'>Recheck include/[s-x]* with IWYU
AgeCommit message (Expand)Author
2021-12-10Generally determine Rdb content from gb_*_set_componentfile callsStephan Bergmann
2020-07-15ucb/cacher: create instances with uno constructorsNoel Grandin
Gabor Kelemen
2021-07-29Fix --enable-mergelibs `make check`Stephan Bergmann
2020-08-22use fastparser for fill stylesNoel Grandin
2020-05-03use more compact namespace syntax in /includeNoel Grandin
2020-03-23make more classes private in mergedlibs modeNoel Grandin
2019-01-22tdf#42949 Fix IWYU warnings in include/xmloff/*Gabor Kelemen