import argparse import os from dotenv import load_dotenv, dotenv_values parser = argparse.ArgumentParser(description="Convert .env to .h defines") parser.add_argument("--env", required=True, help="Path to .env file") parser.add_argument("--output", required=True, help="Path to output .h file") args = parser.parse_args() # Load .env file load_dotenv(dotenv_path=args.env) fileDefs = dotenv_values(dotenv_path=args.env) outHeader = "" outHeader += "#include \"dusk.h\"\n\n" for key, value in fileDefs.items(): # Determine type and print out appropriate C type define. # Integer try: asInt = int(value) outHeader += f"#define {key} {asInt}\n" continue except: pass # Float try: asFloat = float(value) outHeader += f"#define {key} {asFloat}f\n" continue except: pass # Boolean if value.lower() in ['true', 'false']: asBool = '1' if value.lower() == 'true' else '0' outHeader += f"#define {key} {asBool}\n" continue # String outHeader += f'#define {key} "{value}"\n' # Write to output file with open(args.output, 'w') as outFile: outFile.write(outHeader)