CreateCommand constructor

CreateCommand({
  1. required Logger logger,
  2. @visibleForTesting MasonGeneratorFromBundle? generatorFromBundle,
  3. @visibleForTesting MasonGeneratorFromBrick? generatorFromBrick,
})

Implementation

CreateCommand({
  required this.logger,
  @visibleForTesting MasonGeneratorFromBundle? generatorFromBundle,
  @visibleForTesting MasonGeneratorFromBrick? generatorFromBrick,
})  : _generatorFromBundle = generatorFromBundle ?? MasonGenerator.fromBundle,
      _generatorFromBrick = generatorFromBrick ?? MasonGenerator.fromBrick {
  argParser
    ..addOption(
      'application-id',
      help: 'The bundle identifier on iOS or application id on Android. '
          '(defaults to <org-name>.<project-name>)',
    )
    ..addOption(
      'output-directory',
      abbr: 'o',
      help: 'The desired output directory when creating a new project.',
    )
    ..addOption(
      'description',
      help: 'The description for this new project.',
      aliases: ['desc'],
      defaultsTo: _defaultDescription,
    )
    ..addOption(
      'org-name',
      help: 'The organization for this new project.',
      defaultsTo: _defaultOrgName,
      aliases: ['org'],
    )
    ..addOption(
      'template',
      abbr: 't',
      help: 'Specify the type of project to create.',
      allowed: ['mono', 'package', 'app', 'plugin'],
      defaultsTo: 'mono',
      allowedHelp: {
        'mono':
            '(default) Generate a Flutter mono-repo structure for a Melos-managed project.',
        'package':
            'Generate a shareable Flutter package for a Melos-managed mono-repo.',
        'app':
            'Generate a Flutter application for a Melos-managed mono-repo.',
        'plugin': 'Generate a Flutter plugin for a Melos-managed mono-repo.',
      },
    );
}