58 lines
2.0 KiB
Dart
58 lines
2.0 KiB
Dart
import 'dart:io';
|
||
|
||
/// さけのわ統一名称対応:displayData参照を更新
|
||
///
|
||
/// displayData.name → displayData.displayName
|
||
/// displayData.brewery → displayData.displayBrewery
|
||
/// displayData.prefecture → displayData.displayPrefecture
|
||
void main() async {
|
||
final libDir = Directory('lib');
|
||
final dartFiles = <File>[];
|
||
|
||
// 全dartファイルを再帰的に検索
|
||
await for (final entity in libDir.list(recursive: true)) {
|
||
if (entity is File && entity.path.endsWith('.dart')) {
|
||
dartFiles.add(entity);
|
||
}
|
||
}
|
||
|
||
int totalFiles = 0;
|
||
int totalReplacements = 0;
|
||
|
||
for (final file in dartFiles) {
|
||
String content = await file.readAsString();
|
||
String original = content;
|
||
int fileReplacements = 0;
|
||
|
||
// 置換(順番重要:長いパターンから)
|
||
// displayName が既に存在する場合はスキップ
|
||
if (!content.contains('displayData.displayName')) {
|
||
final nameCount = 'displayData.name'.allMatches(content).length;
|
||
content = content.replaceAll('displayData.name', 'displayData.displayName');
|
||
fileReplacements += nameCount;
|
||
}
|
||
|
||
if (!content.contains('displayData.displayBrewery')) {
|
||
final breweryCount = 'displayData.brewery'.allMatches(content).length;
|
||
content = content.replaceAll('displayData.brewery', 'displayData.displayBrewery');
|
||
fileReplacements += breweryCount;
|
||
}
|
||
|
||
if (!content.contains('displayData.displayPrefecture')) {
|
||
final prefectureCount = 'displayData.prefecture'.allMatches(content).length;
|
||
content = content.replaceAll('displayData.prefecture', 'displayData.displayPrefecture');
|
||
fileReplacements += prefectureCount;
|
||
}
|
||
|
||
// 変更があった場合のみ保存
|
||
if (content != original) {
|
||
await file.writeAsString(content);
|
||
totalFiles++;
|
||
totalReplacements += fileReplacements;
|
||
print('✅ ${file.path}: $fileReplacements 箇所更新');
|
||
}
|
||
}
|
||
|
||
print('\n🎉 完了: $totalFiles ファイル、合計 $totalReplacements 箇所を更新しました');
|
||
}
|