import 'dart:convert';
import 'dart:io';
void main() async {
// 定義 JSON 文件的路徑
String filePath = './oh-package.json5';
try {
// 讀取 JSON 文件內(nèi)容
File packageFile = await File(filePath);
final String packageConfig = packageFile.readAsStringSync();
final Map<String, dynamic> config = json.decode(packageConfig) as Map<String, dynamic>;
final Map<String, dynamic> overrides = config['overrides'] as Map<String, dynamic>? ?? <String, dynamic>{};
// for (final Plugin plugin in plugins) {
// overrides[plugin.name] = _relative(
// globals.fs.path.join(plugin.path, OhosPlugin.kConfigKey),
// flutterProject.ohos.ohosRoot.path,
// );
// }
Directory dir = Directory("./har");
overrides.clear();
overrides["@ohos/flutter_ohos"] ='file:./har/flutter.har';
overrides["@ohos/flutter_module"] ='file:./har/flutter_module.har';
// 遍歷文件夾中的每個(gè)實(shí)體(文件或文件夾)
dir.listSync(recursive: false).forEach((FileSystemEntity entity) {
if (entity is Directory) {
// 如果是文件夾龄寞,則遞歸調(diào)用該函數(shù)繼續(xù)遍歷
print('文件夾: ${entity.path}');
} else if (entity is File) {
// 如果是文件轩猩,則打印文件路徑
print('文件: ${entity.path}');
var name = entity.uri.pathSegments.last;
var n=name.substring(0,name.indexOf("."));
if(n == "flutter"){
}else if(n == "flutter_module"){
}else{
overrides[n] ='file:./har/$n.har';
}
}
});
// final String relativePath = _relative(flutterProject.ohos.flutterModuleDirectory.path, flutterProject.ohos.ohosRoot.path);
// overrides['@ohos/flutter_module'] = 'file:./$relativePath';
// overrides['@ohos/flutter_ohos'] = 'file:./har/flutter.har';
final String configNew = const JsonEncoder.withIndent(' ').convert(config);
packageFile.writeAsStringSync(configNew, flush: true);
print('JSON 文件已成功修改并覆蓋。');
} catch (e) {
print('處理 JSON 文件時(shí)出現(xiàn)錯(cuò)誤: $e');
}
}
// void recursiveTraverseDirectory(String path) {
// Directory dir = Directory(path);
// if (!dir.existsSync()) {
// print('指定的文件夾不存在: $path');
// return;
// }
// // 遍歷文件夾中的每個(gè)實(shí)體(文件或文件夾)
// dir.listSync(recursive: false).forEach((FileSystemEntity entity) {
// if (entity is Directory) {
// // 如果是文件夾纵柿,則遞歸調(diào)用該函數(shù)繼續(xù)遍歷
// print('文件夾: {entity.path}');
// }
// });
// }