void main()

in tool/pana_baseline.dart [10:58]


void main() async {
  print('Reading baseline...');
  var contents = File(baseLinePath).readAsStringSync();
  var baseline = jsonDecode(contents)['scores'];
  print(baseline);

  print('Installing pana...');
  var activate = await Process.run('pub', ['global', 'activate', 'pana']);
  expectOk(activate);
  print(activate.stdout);

  print('Running pana...');
  var output = await Process.run('pub', [
    'global',
    'run',
    'pana',
    '-s',
    'path',
    Directory.current.path,
    '-j',
  ]);
  expectOk(output);
  print(output.stdout);

  var panaJson = jsonDecode(output.stdout as String);
  var scores = panaJson['scores'];
  print(scores);

  var failureReport = '';
  var baselinePoints = baseline['grantedPoints'] as int;
  var currentPoints = scores['grantedPoints'] as int;
  if (currentPoints < baselinePoints) {
    if (failureReport.isNotEmpty) {
      failureReport += ', ';
    }
    failureReport +=
        'granted points dropped from $baselinePoints to $currentPoints';
  }
  if (failureReport.isNotEmpty) {
    print('Baseline check failed: $failureReport');
    exit(13);
  }
  print('Baseline check passed ✅');

  if (currentPoints != baselinePoints) {
    print(
        '... you have a new baseline! 🎉 Consider updating $baseLinePath to match.');
  }
}