46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
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.
|
|
|
|
# Float
|
|
try:
|
|
asFloat = float(value)
|
|
outHeader += f"#define {key} {asFloat}f\n"
|
|
continue
|
|
except:
|
|
pass
|
|
|
|
# Integer
|
|
try:
|
|
asInt = int(value)
|
|
outHeader += f"#define {key} {asInt}\n"
|
|
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) |