operation method

Future operation()

Implementation

Future operation() async {
  try {
    final templateRootPath = await Commands.getTemplateDirectoryPath();
    _templateRootDirectory = Directory(templateRootPath!);

    await getModuleName();
    await getDestinationDirectory();
    await getTemplateDirectory();
    await getDefaultModuleName();
    ColoredLog.magenta(templateDirectory, name: 'Source Directory');
    ColoredLog.magenta(
      _destinationDirectoryPath,
      name: 'Destination Directory',
    );
    ColoredLog.magenta(defaultName, name: 'Default Module Name');
    final destinationDirectory = Directory(
        '$_destinationDirectoryPath$platformPathSaperator${moduleName.toCamelCase}');
    if (!await destinationDirectory.exists()) {
      await destinationDirectory.create(recursive: true);
      ColoredLog.green('Directory created: ${destinationDirectory.path}');
    } else {
      ColoredLog.cyan('Directory already exists.');
    }
    ColoredLog.magenta(destinationDirectory, name: 'Destination Directory');
    await copyDirectory(
      source: templateDirectory,
      destination: destinationDirectory,
      isMainDest: true,
    );
    printDirectoryTree(destinationDirectory, '', true);
    print('\n\n');
    ColoredLog.green('Successfully Created', name: '✅');
    await printInstructions(
      templateDirectory: templateDirectory,
      defaultName: defaultName,
      moduleName: moduleName,
    );
  } catch (e) {
    ColoredLog.red(e, name: 'Error creating template');
  }
}