Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: lib/src/validator/license.dart

Issue 1310253007: Make pub lish validation gitignore-aware. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: analysis hints Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 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 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 library pub.validator.license; 5 library pub.validator.license;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:path/path.dart' as path; 9 import 'package:path/path.dart' as path;
10 10
11 import '../entrypoint.dart'; 11 import '../entrypoint.dart';
12 import '../validator.dart'; 12 import '../validator.dart';
13 13
14 /// A validator that checks that a LICENSE-like file exists. 14 /// A validator that checks that a LICENSE-like file exists.
15 class LicenseValidator extends Validator { 15 class LicenseValidator extends Validator {
16 LicenseValidator(Entrypoint entrypoint) 16 LicenseValidator(Entrypoint entrypoint)
17 : super(entrypoint); 17 : super(entrypoint);
18 18
19 Future validate() { 19 Future validate() {
20 return new Future.sync(() { 20 return new Future.sync(() {
21 var licenseLike = new RegExp( 21 var licenseLike = new RegExp(
22 r"^([a-zA-Z0-9]+[-_])?(LICENSE|COPYING)(\..*)?$"); 22 r"^([a-zA-Z0-9]+[-_])?(LICENSE|COPYING)(\..*)?$");
23 if (entrypoint.root.listFiles(recursive: false) 23 if (entrypoint.root.listFiles(recursive: false, useGitIgnore: true)
24 .map(path.basename) 24 .map(path.basename)
25 .any(licenseLike.hasMatch)) { 25 .any(licenseLike.hasMatch)) {
26 return; 26 return;
27 } 27 }
28 28
29 errors.add( 29 errors.add(
30 "You must have a COPYING or LICENSE file in the root directory.\n" 30 "You must have a COPYING or LICENSE file in the root directory.\n"
31 "An open-source license helps ensure people can legally use your " 31 "An open-source license helps ensure people can legally use your "
32 "code."); 32 "code.");
33 }); 33 });
34 } 34 }
35 } 35 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698