import 'dart:convert';
import 'dart:io';
void main() async {
// 定义 JSON 文件的路径
String filePath = './oh-package.json5';
try {
// 读取 JSON 文件内容
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';
// 遍历文件夹中的每个实体(文件或文件夹)
dir.listSync(recursive: false).forEach((FileSystemEntity entity) {
if (entity is Directory) {
// 如果是文件夹,则递归调用该函数继续遍历
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 文件时出现错误: $e');
}
}
// void recursiveTraverseDirectory(String path) {
// Directory dir = Directory(path);
// if (!dir.existsSync()) {
// print('指定的文件夹不存在: $path');
// return;
// }
// // 遍历文件夹中的每个实体(文件或文件夹)
// dir.listSync(recursive: false).forEach((FileSystemEntity entity) {
// if (entity is Directory) {
// // 如果是文件夹,则递归调用该函数继续遍历
// print('文件夹: {entity.path}');
// }
// });
// }