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

58 lines
2.0 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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