ponshu-room-lite/scripts/update_display_data_referen...

58 lines
2.0 KiB
Dart
Raw Normal View History

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 箇所を更新しました');
}