createAllProjects method

Future<bool> createAllProjects()

Create all projects based on config

Implementation

Future<bool> createAllProjects() async {
  info('Creating projects...');

  // Ensure the output directory exists before any flutter/dart create runs.
  // Without this `dart/flutter create <outputDir>/<appName>` fails with
  // `PathNotFoundException` when the user passes `-d` to a brand-new path.
  final Directory outDir = Directory(config.outputDir);
  if (!outDir.existsSync()) {
    await outDir.create(recursive: true);
  }

  // Create main app based on template type
  if (config.template.isFlutterApp) {
    if (!await createFlutterApp()) {
      return false;
    }
  } else if (config.template.isDartCli) {
    if (!await createDartCli()) {
      return false;
    }
  } else if (config.template.isJasprApp) {
    if (!await createJasprApp()) {
      return false;
    }
  }

  // Create models package if enabled
  if (config.createModels) {
    if (!await createModelsPackage()) {
      return false;
    }
  }

  // Create server app if enabled
  if (config.createServer) {
    if (!await createServerApp()) {
      return false;
    }
  }

  success('All projects created successfully!');
  return true;
}