validate method
void
validate()
Implementation
void validate() {
final file = File(settingsPath);
if (!file.existsSync()) {
print('❌ settings.gradle.kts not found at $settingsPath');
return;
}
final content = file.readAsStringSync();
final lines = content.split('\n');
print('🔍 Checking plugin versions in settings.gradle.kts...');
final pluginRegex = RegExp(r'id\("([^"]+)"\)\s+version\s+"([^"]+)"');
bool updated = false;
final newLines = <String>[];
for (var line in lines) {
var updatedLine = line;
final m = pluginRegex.firstMatch(line);
if (m != null) {
final pluginId = m.group(1)!;
final foundVersion = m.group(2)!;
final requiredVersion = requiredPlugins[pluginId];
if (requiredVersion != null) {
final cmp = compareVersions(foundVersion, requiredVersion);
if (cmp < 0) {
print('⚠️ $pluginId outdated:');
print('Found: $foundVersion, Required: $requiredVersion');
updated = true;
updatedLine = line.replaceFirst(
'version "$foundVersion"',
'version "$requiredVersion"',
);
} else {
print('✅ $pluginId OK (Found: $foundVersion ≥ Required: $requiredVersion)');
}
}
}
newLines.add(updatedLine);
}
if (updated) {
print('🔧 Updating settings.gradle.kts...');
file.writeAsStringSync(newLines.join('\n'));
print('✅ Plugin versions updated.');
} else {
print('✨ No updates needed.');
}
}