OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
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. | |
4 | |
5 library pubspec_field_validator; | |
6 | |
7 import 'dart:async'; | |
8 | |
9 import 'package:pathos/path.dart' as path; | |
10 | |
11 import '../entrypoint.dart'; | |
12 import '../io.dart'; | |
13 import '../system_cache.dart'; | |
14 import '../validator.dart'; | |
15 | |
16 /// A validator that checks that a LICENSE-like file exists. | |
17 class LicenseValidator extends Validator { | |
18 LicenseValidator(Entrypoint entrypoint) | |
19 : super(entrypoint); | |
20 | |
21 Future validate() { | |
22 return new Future.sync(() { | |
23 var licenseLike = new RegExp( | |
24 r"^([a-zA-Z0-9]+[-_])?(LICENSE|COPYING)(\..*)?$"); | |
25 if (listDir(entrypoint.root.dir) | |
26 .map(path.basename) | |
27 .any(licenseLike.hasMatch)) { | |
28 return; | |
29 } | |
30 | |
31 errors.add( | |
32 "You must have a COPYING or LICENSE file in the root directory.\n" | |
33 "An open-source license helps ensure people can legally use your " | |
34 "code."); | |
35 }); | |
36 } | |
37 } | |
OLD | NEW |