updatePackagePubspec static method
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);
}