// Copyright (c) 2017, 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:io';

import 'package:analyzer/src/summary/idl.dart';
import 'package:args/args.dart';

main(List<String> args) {
  ArgParser argParser = new ArgParser()..addFlag('raw');
  ArgResults argResults = argParser.parse(args);
  if (argResults.rest.length != 1) {
    print(argParser.usage);
    exitCode = 1;
    return;
  }

  String path = argResults.rest[0];
  List<int> bytes = new File(path).readAsBytesSync();
  AnalysisDriverExceptionContext context =
      new AnalysisDriverExceptionContext.fromBuffer(bytes);

  print(context.path);
  print('');
  print('');
  print('');

  print(context.exception);
  print('');
  print('');
  print('');

  print(context.stackTrace);
  print('');
  print('');
  print('');

  context.files.forEach((file) {
    print("=" * 40);
    print('${file.path}');
    print("-" * 40);
    print('${file.content}');
    print('');
    print('');
    print('');
  });
}
