import json
from sys import argv
import Descriptor as desc
import StructGenerator as sg
from itertools import chain
from ConfigGenerator import ConfigGenerator
# print welcome message
print("----\nflatUSB descriptor generator by Epagris\n----\n")
# check number of parameters
if len(argv) < 3:
print("Insufficient parameters!\nCorrect usage: `main.py `\nExiting.")
exit(0)
# fetch USB settings
usb_config_file_name = argv[1]
usb_target_dir = argv[2]
# print input and output parameters
print("Input JSON: ", usb_config_file_name)
print("Target directory: ", usb_target_dir)
with open(usb_config_file_name, 'r') as usb_config_file:
usb_config_data = usb_config_file.read()
usb_config = json.loads(usb_config_data)
# process "misc"
if "misc" in usb_config:
misc = usb_config["misc"]
# mutable descriptors
if "mutable_descriptors" in misc:
if misc["mutable_descriptors"]:
desc.Descriptor.QUALIFIERS = ""
# generate config
cfggen = ConfigGenerator(usb_config)
cfggen.generate(usb_target_dir)
# print complete message
print("Descriptor generation complete!")