From: Simon Glass Date: Sat, 18 Dec 2021 21:54:33 +0000 (-0700) Subject: moveconfig: Use a function to write files X-Git-Tag: v2022.07~210^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2fd85bd3263966dee1c4a913c457d1000a52de48;p=platform%2Fkernel%2Fu-boot.git moveconfig: Use a function to write files At present there is quite a bit of ad-hoc code writing to files. The treatment of newlines is different in some of them. Put it in a function and set the unicode encoding correctly. Signed-off-by: Simon Glass --- diff --git a/tools/moveconfig.py b/tools/moveconfig.py index 0b33f31..4932bd9 100755 --- a/tools/moveconfig.py +++ b/tools/moveconfig.py @@ -273,6 +273,21 @@ def confirm(args, prompt): return True +def write_file(fname, data): + """Write data to a file + + Args: + fname (str): Filename to write to + data (list of str): Lines to write (with or without trailing newline); + or str to write + """ + with open(fname, 'w', encoding='utf-8') as out: + if isinstance(data, list): + for line in data: + print(line.rstrip('\n'), file=out) + else: + out.write(data) + def cleanup_empty_blocks(header_path, args): """Clean up empty conditional blocks @@ -296,8 +311,7 @@ def cleanup_empty_blocks(header_path, args): if args.dry_run: return - with open(header_path, 'w') as f: - f.write(new_data) + write_file(header_path, new_data) def cleanup_one_header(header_path, patterns, args): """Clean regex-matched lines away from a file. @@ -359,9 +373,7 @@ def cleanup_one_header(header_path, patterns, args): if args.dry_run: return - with open(header_path, 'w') as f: - for line in tolines: - f.write(line) + write_file(header_path, tolines) def cleanup_headers(configs, args): """Delete config defines from board headers. @@ -437,9 +449,7 @@ def cleanup_one_extra_option(defconfig_path, configs, args): if args.dry_run: return - with open(defconfig_path, 'w') as f: - for line in tolines: - f.write(line) + write_file(defconfig_path, tolines) def cleanup_extra_options(configs, args): """Delete config defines in CONFIG_SYS_EXTRA_OPTIONS in defconfig files. @@ -474,8 +484,7 @@ def cleanup_whitelist(configs, args): lines = [x for x in lines if x.strip() not in configs] - with open(os.path.join('scripts', 'config_whitelist.txt'), 'w') as f: - f.write(''.join(lines)) + write_file(os.path.join('scripts', 'config_whitelist.txt'), lines) def find_matching(patterns, line): for pat in patterns: @@ -514,8 +523,7 @@ def cleanup_readme(configs, args): if not found: newlines.append(line) - with open('README', 'w') as f: - f.write(''.join(newlines)) + write_file('README', newlines) def try_expand(line): """If value looks like an expression, try expanding it @@ -1135,8 +1143,7 @@ class Slots: print(color_text(self.args.color, COLOR_LIGHT_RED, msg), file=sys.stderr) - with open(output_file, 'w') as f: - f.write(boards) + write_file(output_file, boards) def show_suspicious_boards(self): """Display all boards (defconfigs) with possible misconversion.""" @@ -1155,8 +1162,7 @@ class Slots: print(color_text(self.args.color, COLOR_YELLOW, msg), file=sys.stderr) - with open(output_file, 'w') as f: - f.write(boards) + write_file(output_file, boards) class ReferenceSource: @@ -1315,8 +1321,7 @@ def add_imply_rule(config, fname, linenum): for offset, line in enumerate(data[linenum:]): if line.strip().startswith('help') or not line: data.insert(linenum + offset, '\timply %s' % config) - with open(fname, 'w') as fd: - fd.write('\n'.join(data) + '\n') + write_file(fname, data) return 'added%s' % file_line return 'could not insert%s'