execute method
Implementation
@override
Future<void> execute(AFCommandContext context) async {
// first, determine the base path.
final args = context.parseArguments(
command: this,
unnamedCount: 1,
named: {
argParentType: "",
AFGenerateUISubcommand.argParentTheme: null,
AFGenerateUISubcommand.argParentThemeID: null,
}
);
final uiName = args.accessUnnamedFirst;
final parentType = args.accessNamed(argParentType);
if(parentType.isEmpty) {
throwUsageError("You must specify --$argParentType");
}
final generator = context.generator;
if(uiName.endsWith(themeSuffix)) {
final fullId = generator.deriveFullLibraryIDFromType(parentType, themeSuffix);
args.setIfNull(AFGenerateUISubcommand.argParentTheme, parentType);
args.setIfNull(AFGenerateUISubcommand.argParentThemeID, fullId);
final fromLib = generator.findLibraryForTypeWithPrefix(parentType);
AFGenerateUISubcommand.createTheme(context, uiName, args,
fullId: fullId,
fromLib: fromLib,
);
} else if(uiName.endsWith(spiSuffix)) {
} else if(uiName.endsWith(lpiSuffix)) {
_generateLPIOverride(context, uiName, parentType);
} else {
throwUsageError("Expected $uiName to end with Theme or SPI");
}
generator.finalizeAndWriteFiles(context);
}