main function
Implementation
Future<void> main(List<String> arguments) async {
final argsParser = describeArguments();
final parsedArgs = argsParser.parse(arguments);
if (parsedArgs[help] || arguments.isEmpty) {
print(
"""
A command-line app which is used to generate serializers for entities.
Usage: entgen [arguments]
Options:
${argsParser.usage}""",
);
return;
}
final String? pathToXml = parsedArgs[input];
if (pathToXml == null) {
throw Exception("Path to the XML file must be specified");
}
final shouldSplitByFiles = parsedArgs[splitByFiles];
final String? pathToOutput = parsedArgs[output];
final xmlFile = File(pathToXml);
if (!await xmlFile.exists()) {
print(xmlFile.absolute.path);
print("Given file $pathToXml doesn't exist");
exit(1);
} else {
final document = XmlDocument.parse(xmlFile.readAsStringSync());
final Model model = Model();
ModelGenerator(from: document, model: model, readFileFunc: _readFile);
final outputGenerator = OutputGenerator(
models: model,
outputPath: pathToOutput,
splitByFiles: shouldSplitByFiles,
);
outputGenerator.generateOutput();
print("Done!");
}
}