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..d3c02ca050454b9815b94a7ade3a0469a9122883 |
--- /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) { |
+ var scriptPath = p.join("bin", "$script.dart"); |
+ if (binFiles.contains(scriptPath)) return; |
+ warnings.add( |
+ 'Your pubspec.yaml lists an executable "$executable" that ' |
+ 'points to a script "$scriptPath" that does not exist.'); |
+ })); |
+ completer0.complete(null); |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }); |
+ return completer0.future; |
+ } |
+} |