| // Copyright 2014 The Flutter Authors. 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:io'; |
| import 'package:path/path.dart' as path; |
| |
| /// Count the number of libraries that import globals.dart in lib and test. |
| /// |
| /// This must be run from the flutter_tools project root directory. |
| void main() { |
| final Directory sources = Directory(path.join(Directory.current.path, 'lib')); |
| final Directory tests = Directory(path.join(Directory.current.path, 'test')); |
| final int sourceGlobals = countGlobalImports(sources); |
| final int testGlobals = countGlobalImports(tests); |
| print('lib/ contains $sourceGlobals libraries with global usage'); |
| print('test/ contains $testGlobals libraries with global usage'); |
| } |
| |
| final RegExp globalImport = RegExp('import.*globals.dart\' as globals;'); |
| |
| int countGlobalImports(Directory directory) { |
| int count = 0; |
| for (final FileSystemEntity file in directory.listSync(recursive: true)) { |
| if (!file.path.endsWith('.dart') || file is! File) { |
| continue; |
| } |
| final bool hasImport = (file as File).readAsLinesSync().any((String line) { |
| return globalImport.hasMatch(line); |
| }); |
| if (hasImport) { |
| count += 1; |
| } |
| } |
| return count; |
| } |