| // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // @dart=2.9 |
| |
| import 'dart:convert' show jsonDecode, jsonEncode; |
| |
| import 'dart:io'; |
| |
| import 'package:testing/src/run_tests.dart' show CommandLine; |
| |
| main(List<String> arguments) async { |
| CommandLine cl = CommandLine.parse(arguments); |
| Set<String> fields = cl.commaSeparated("--fields="); |
| if (fields.isEmpty) { |
| fields.addAll(["uri", "offset", "json:error"]); |
| } |
| for (String filename in cl.arguments) { |
| String json = await new File(filename).readAsString(); |
| Map<String, dynamic> data = jsonDecode(json) as Map<String, dynamic>; |
| StringBuffer sb = new StringBuffer(); |
| bool isFirst = true; |
| for (String field in fields) { |
| if (!isFirst) { |
| sb.write(":"); |
| } |
| if (field.startsWith("json:")) { |
| field = field.substring(5); |
| sb.write(jsonEncode(data[field])); |
| } else { |
| sb.write(data[field]); |
| } |
| isFirst = false; |
| } |
| print("$sb"); |
| } |
| } |