addNewFeature method

Future<void> addNewFeature(
  1. String packageName
)

Implementation

Future<void> addNewFeature(String packageName) async {
  final pathPackages =
      join(current, 'core', 'packages', packageName.snakeCase);

  await FlutterHelper.run(
      'create --template=package "core/packages/${packageName.snakeCase}"');

  join(pathPackages, 'pubspec.yaml').write('''name: $packageName
description: A new Flutter package project.
version: 0.0.1

publish_to: "none"

environment:
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"

dependencies:
flutter:
  sdk: flutter

dev_dependencies:
dev_dependency_manager:
  path: ../dev_dependency_manager

flutter:''');

  deleteDir(join(pathPackages, 'lib'), recursive: true);
  deleteDir(join(pathPackages, 'test'), recursive: true);

  createDir(join(pathPackages, 'lib'), recursive: true);
  createDir(join(pathPackages, 'test'), recursive: true);

  touch(join(pathPackages, 'lib', '.gitkeep'), create: true);
  touch(join(pathPackages, 'test', '.gitkeep'), create: true);

  for (var element in [
    join(pathPackages, 'android'),
    join(pathPackages, 'ios'),
    join(pathPackages, 'web'),
    join(pathPackages, 'macos'),
    join(pathPackages, 'linux'),
    join(pathPackages, 'windows'),
  ]) {
    if (exists(element)) {
      deleteDir(element);
    }
  }

  StatusHelper.generated(pathPackages);
}