example: allow opt-out of logging (better for perf testing)
diff --git a/example/example_server.dart b/example/example_server.dart
index 3c050eb..9182e32 100644
--- a/example/example_server.dart
+++ b/example/example_server.dart
@@ -1,20 +1,32 @@
library shelf_static.example;
import 'dart:io';
+import 'package:args/args.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as io;
import 'package:shelf_static/shelf_static.dart';
-void main() {
+void main(List<String> args) {
+ var result = _getParser().parse(args);
+ var logging = result['logging'];
+
if (!FileSystemEntity.isFileSync('example/example_server.dart')) {
throw new StateError('Server expects to be started the '
'root of the project.');
}
- var handler = const shelf.Pipeline().addMiddleware(shelf.logRequests())
- .addHandler(createStaticHandler('example/files',
+ var pipeline = const shelf.Pipeline();
+
+ if (logging) {
+ pipeline = pipeline.addMiddleware(shelf.logRequests());
+ }
+
+ var handler = pipeline.addHandler(createStaticHandler('example/files',
defaultDocument: 'index.html'));
io.serve(handler, 'localhost', 8080).then((server) {
print('Serving at http://${server.address.host}:${server.port}');
});
}
+
+ArgParser _getParser() => new ArgParser()
+ ..addFlag('logging', abbr: 'l', defaultsTo: true, negatable: true);
diff --git a/pubspec.yaml b/pubspec.yaml
index c12bf1e..72cf142 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -10,6 +10,7 @@
mime: '>=0.9.0 <0.10.0'
shelf: '>=0.5.3 <0.6.0'
dev_dependencies:
+ args: '>=0.12.0 <0.13.0'
hop: '>=0.30.4 <0.32.0'
hop_unittest: '>=0.1.0 <0.2.0'
path: '>=1.1.0 <2.0.0'