run method

  1. @override
FutureOr? run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
run() {
  /// ensure yaml load correctly
  ensureYamlInitialized();

  /// split rewrite config if exist in myst.yaml
  if (extensionConfig != null) {
    if (extensionConfig!.containsKey("rewrite") == true) {
      rewrite = extensionConfig!['rewrite'];
    }
  }

  final watch = Stopwatch()..start();
  PrintX.cool("extension start");

  /// in case user don't want to type --name then take the first input instead
  if (argResults!.arguments.isNotEmpty) {
    inputName ??= argResults!.arguments.first;

    className = (className ?? inputName)!.pascalCase;

    fileName ??= inputName!.snakeCase;

    /// printBlue("${argResults!.options}");
    /// printGreen([inputName, className, fileName]);

    /// generate extension class in lib/extensions
    generateLib();

    /// generate extension test class in test/extensions
    generateTest();
  } else {
    printCyan(usage);
  }

  PrintX.cool("extension finished in (${watch.elapsedMilliseconds} ms)");
  watch.stop();
}