From 3f9ffecf86756e39866c82252a1015f86093ab99 Mon Sep 17 00:00:00 2001 From: Rohit Goswami Date: Sat, 17 Aug 2024 16:32:41 -0500 Subject: [PATCH] MAINT: Fixup hardcoded build folder --- meson.build | 3 ++- read_config.py | 28 +++++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index 9fdd08dec..ef1021c97 100644 --- a/meson.build +++ b/meson.build @@ -510,7 +510,8 @@ _read_config_py = './read_config.py' run_command(py3, _read_config_py, - _config_h, + '--file1', _config_h, + '--build_dir', meson.current_build_dir(), check: true) keyval = import('keyval') diff --git a/read_config.py b/read_config.py index acb8abb84..216d70849 100644 --- a/read_config.py +++ b/read_config.py @@ -1,10 +1,12 @@ #!/usr/bin/env python3 import argparse +from pathlib import Path -def read_config_file(file_path: str) -> dict: + +def read_config_file(file_path: Path) -> dict: config_data = {} - with open(file_path, "r") as file: + with file_path.open("r") as file: lines = file.readlines() for line in lines: line = line.strip() @@ -22,18 +24,26 @@ def read_config_file(file_path: str) -> dict: config_data[key] = 1 return config_data + if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Read a config.h file.") - parser.add_argument("file1", help="Path to the config.h file.") + parser = argparse.ArgumentParser( + description="Read a config.h file and write to a specified build directory." + ) + parser.add_argument("--file1", type=Path, help="Path to the config.h file.") + parser.add_argument("--build_dir", type=Path, help="Path to the build directory.") args = parser.parse_args() config_data = read_config_file(args.file1) fdat = [] for key, value in config_data.items(): - fdat.append(f'{key}={value}') - result = '\n'.join(fdat) + fdat.append(f"{key}={value}") + result = "\n".join(fdat) - f = open("./build/config.kconf", "a") - f.write(result) - f.close() + # Ensure the build directory exists + args.build_dir.mkdir(parents=True, exist_ok=True) + + # Write to the specified file in the build directory + output_file_path = args.build_dir / "config.kconf" + with output_file_path.open("a") as f: + f.write(result)