updatePackagePubspec static method

Future<void> updatePackagePubspec(
  1. String packageDir,
  2. String packageName,
  3. bool verbose
)

Implementation

static Future<void> updatePackagePubspec(
  String packageDir,
  String packageName,
  bool verbose,
) async {
  final pubspecFile = File(path.join(packageDir, Constants.pubspecFileName));
  if (!pubspecFile.existsSync()) {
    if (verbose) {
      stdout.writeln(
          '${Constants.errorMessage} pubspec.yaml not found in package');
    }
    return;
  }

  String content = await pubspecFile.readAsString();

  // Replace the entire content with our template content
  final root = CopyUtils.findTemplatePath();
  final templatePath = path.join(root, 'templates',
      Constants.baseKitPackageTemplate, Constants.pubspecFileName);
  final templateFile = File(templatePath);

  if (templateFile.existsSync()) {
    content = await templateFile.readAsString();
    // Update project name
    content =
        content.replaceAll('name: base_kit_package', 'name: $packageName');
  }

  await pubspecFile.writeAsString(content);
  if (verbose) {
    stdout.writeln('${Constants.updateMessage} Updated package pubspec.yaml');
  }

  // Update main library file
  await _updatePackageMainFile(packageDir, packageName, verbose);

  // Remove default test directory
  await _removeDefaultTestDirectory(packageDir, verbose);

  // Update analysis_options.yaml
  await _updatePackageAnalysisOptions(packageDir, verbose);
}