| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Outputs source code for `part` used by `shard2group.dart`. Usage: | 5 // Outputs source code for `part` used by `shard2group.dart`. Usage: |
| 6 // `dart bin/create_shard_groups.dart source.html >lib/src/shard_data.dart`. | 6 // `dart bin/create_shard_groups.dart source.html >lib/src/shard_data.dart`. |
| 7 | 7 |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 import 'dart:math' as math; | 9 import 'dart:math' as math; |
| 10 | 10 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 const String shardMark = '/builders/'; | 34 const String shardMark = '/builders/'; |
| 35 | 35 |
| 36 List<List<String>> findShards(List<String> source) { | 36 List<List<String>> findShards(List<String> source) { |
| 37 List<List<String>> result = <List<String>>[]; | 37 List<List<String>> result = <List<String>>[]; |
| 38 List<String> shardResult; | 38 List<String> shardResult; |
| 39 bool started = false; | 39 bool started = false; |
| 40 | 40 |
| 41 for (String line in source) { | 41 for (String line in source) { |
| 42 if (line.contains(shardsStartMark)) started = true; | 42 if (line.contains(shardsStartMark)) started = true; |
| 43 if (started) { | 43 if (started) { |
| 44 if (line.contains(shardsEndMark)) break; | 44 if (line.contains(shardsEndMark)) { |
| 45 if (shardResult != null) result.add(shardResult); |
| 46 break; |
| 47 } |
| 45 String trimmed = line.trim(); | 48 String trimmed = line.trim(); |
| 46 int buildersIndex = trimmed.indexOf(shardMark); | 49 int buildersIndex = trimmed.indexOf(shardMark); |
| 47 if (buildersIndex >= 0) { | 50 if (buildersIndex >= 0) { |
| 48 int quoteIndex = trimmed.indexOf("'", buildersIndex); | 51 int quoteIndex = trimmed.indexOf("'", buildersIndex); |
| 49 if (quoteIndex >= 0) { | 52 if (quoteIndex >= 0) { |
| 50 // Found a shard name, add it. | 53 // Found a shard name, add it. |
| 51 shardResult.add(trimmed.substring( | 54 shardResult.add(trimmed.substring( |
| 52 buildersIndex + shardMark.length, quoteIndex)); | 55 buildersIndex + shardMark.length, quoteIndex)); |
| 53 } else { | 56 } else { |
| 54 // Unexpected source formatting, skip. | 57 // Unexpected source formatting, skip. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 """); | 93 """); |
| 91 for (int i = 0; i < groupCount; i++) { | 94 for (int i = 0; i < groupCount; i++) { |
| 92 print(" '${groups[i]}': const <String>["); | 95 print(" '${groups[i]}': const <String>["); |
| 93 for (List<String> shard in shards[i]) { | 96 for (List<String> shard in shards[i]) { |
| 94 print(" '$shard',"); | 97 print(" '$shard',"); |
| 95 } | 98 } |
| 96 print(" ],"); | 99 print(" ],"); |
| 97 } | 100 } |
| 98 print('};'); | 101 print('};'); |
| 99 } | 102 } |
| OLD | NEW |