Index: pkg/front_end/lib/src/fasta/bin/log_collector.dart |
diff --git a/pkg/front_end/lib/src/fasta/bin/log_collector.dart b/pkg/front_end/lib/src/fasta/bin/log_collector.dart |
deleted file mode 100644 |
index 7edae67c45f0566d04b09eab78b0b7fd3362327e..0000000000000000000000000000000000000000 |
--- a/pkg/front_end/lib/src/fasta/bin/log_collector.dart |
+++ /dev/null |
@@ -1,110 +0,0 @@ |
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-import 'dart:convert' show JSON, UTF8; |
- |
-import 'dart:isolate' show RawReceivePort; |
- |
-import 'dart:io'; |
- |
-import '../errors.dart' show defaultServerAddress; |
- |
-badRequest(HttpRequest request, int status, String message) { |
- request.response.statusCode = status; |
- request.response.write(''' |
-<!DOCTYPE html> |
-<html lang="en"> |
- <head> |
- <meta charset="utf-8"> |
- <title>$message</title> |
- </head> |
- <body> |
- <h1>$message</h1> |
- </body> |
-</html> |
-'''); |
- request.response.close().catchError((e, s) { |
- print("Request error: $e."); |
- }); |
- print("${request.uri}: $message"); |
-} |
- |
-collectLog(DateTime time, HttpRequest request) async { |
- String json = await request.transform(UTF8.decoder).join(); |
- var data; |
- try { |
- data = JSON.decode(json); |
- } on FormatException catch (e) { |
- print(e); |
- return badRequest( |
- request, HttpStatus.BAD_REQUEST, "Malformed JSON data: ${e.message}."); |
- } |
- if (data is! Map) { |
- return badRequest( |
- request, HttpStatus.BAD_REQUEST, "Malformed JSON data: not a map."); |
- } |
- if (data["type"] != "crash") { |
- return badRequest(request, HttpStatus.BAD_REQUEST, |
- "Malformed JSON data: type should be 'crash'."); |
- } |
- request.response.close(); |
- String year = "${time.year}".padLeft(4, "0"); |
- String month = "${time.month}".padLeft(2, "0"); |
- String day = "${time.day}".padLeft(2, "0"); |
- String us = "${time.microsecondsSinceEpoch}".padLeft(19, '0'); |
- Uri uri = Uri.base |
- .resolve("crash_logs/${data['client']}/$year-$month-$day/$us.log"); |
- File file = new File.fromUri(uri); |
- await file.parent.create(recursive: true); |
- await file.writeAsString(json); |
- print("Wrote ${uri.toFilePath()}"); |
- |
- String type = data["type"]; |
- String text = data["uri"]; |
- uri = text == null ? null : Uri.parse(text); |
- int charOffset = data["offset"]; |
- var error = data["error"]; |
- text = data["trace"]; |
- StackTrace trace = text == null ? null : new StackTrace.fromString(text); |
- String client = data["client"]; |
- print(""" |
-date: ${time} |
-type: $type |
-client: $client |
-uri: $uri |
-offset: $charOffset |
-error: |
-$error |
-trace: |
-$trace |
-"""); |
-} |
- |
-main(List<String> arguments) async { |
- RawReceivePort keepAlive = new RawReceivePort(); |
- Uri uri; |
- if (arguments.length == 1) { |
- uri = Uri.base.resolve(arguments.single); |
- } else if (arguments.length == 0) { |
- uri = Uri.parse(defaultServerAddress); |
- } else { |
- throw "Unexpected arguments: ${arguments.join(' ')}."; |
- } |
- int port = uri.hasPort ? uri.port : 0; |
- var host = uri.host.isEmpty ? InternetAddress.LOOPBACK_IP_V4 : uri.host; |
- HttpServer server = await HttpServer.bind(host, port); |
- print("Listening on http://${server.address.host}:${server.port}/"); |
- await for (HttpRequest request in server) { |
- if (request.method != "POST") { |
- badRequest(request, HttpStatus.METHOD_NOT_ALLOWED, "Not allowed."); |
- continue; |
- } |
- if (request.uri.path != "/") { |
- badRequest(request, HttpStatus.NOT_FOUND, "Not found."); |
- continue; |
- } |
- collectLog(new DateTime.now(), request); |
- } |
- keepAlive.close(); |
-} |