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);
}