execute method

  1. @override
Future<void> execute(
  1. AFCommandContext context
)
override

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);
}