Index: sdk/lib/_internal/pub_generated/lib/src/validator/executable.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/validator/executable.dart b/sdk/lib/_internal/pub_generated/lib/src/validator/executable.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f7a9d3aeca0670bb7e6de16395e1bf7be958bd22 |
--- /dev/null |
+++ b/sdk/lib/_internal/pub_generated/lib/src/validator/executable.dart |
@@ -0,0 +1,32 @@ |
+library pub.validator.compiled_dartdoc; |
+import 'dart:async'; |
+import 'package:path/path.dart' as p; |
+import '../entrypoint.dart'; |
+import '../io.dart'; |
+import '../utils.dart'; |
+import '../validator.dart'; |
+class ExecutableValidator extends Validator { |
+ ExecutableValidator(Entrypoint entrypoint) : super(entrypoint); |
+ Future validate() { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ var binFiles = entrypoint.root.listFiles( |
+ beneath: "bin", |
+ recursive: false).map( |
+ ((path) => p.relative(path, from: entrypoint.root.dir))).toList(); |
+ entrypoint.root.pubspec.executables.forEach(((executable, script) { |
+ if (!binFiles.contains("bin/$script.dart")) { |
+ warnings.add( |
+ 'Your pubspec.yaml lists an executable "$executable" that ' |
+ 'points to a script "bin/$script.dart" that does not exist.'); |
+ } |
+ })); |
+ completer0.complete(null); |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }); |
+ return completer0.future; |
+ } |
+} |