David PHAM-VAN

Add pana reporting summary

@@ -54,7 +54,7 @@ publish-printing: format clean @@ -54,7 +54,7 @@ publish-printing: format clean
54 touch .pana 54 touch .pana
55 55
56 analyze: .pana 56 analyze: .pana
57 - pana --no-warning --source path pdf  
58 - pana --no-warning --source path printing 57 + @pana --no-warning --source path pdf 2> /dev/null | python pana_report.py
  58 + @pana --no-warning --source path printing 2> /dev/null | python pana_report.py
59 59
60 .PHONY: test format format-dart format-clang clean publish-pdf publish-printing analyze 60 .PHONY: test format format-dart format-clang clean publish-pdf publish-printing analyze
  1 +from __future__ import print_function
  2 +import sys
  3 +import json
  4 +import re
  5 +
  6 +
  7 +def parse_suggestions(data):
  8 + for item in data:
  9 + print(' -', item['description'].replace(
  10 + '\n\n',
  11 + '\n').replace('\n', '\n '))
  12 +
  13 +
  14 +def parse_key(data):
  15 + for key, val in data.iteritems():
  16 + if val is False:
  17 + continue
  18 + if val == 0:
  19 + continue
  20 + if key == 'strongModeEnabled' and val is True:
  21 + continue
  22 + label = re.sub(r"([a-z])([A-Z])", r"\g<1> \g<2>", key).capitalize()
  23 + if key == 'suggestions':
  24 + print(' - {key}:'.format(key=label))
  25 + parse_suggestions(val)
  26 + continue
  27 + print(' - {key}: {val}'.format(key=label, val=val))
  28 +
  29 +
  30 +def main():
  31 + json_data = sys.stdin.read()
  32 + data = json.loads(json_data)
  33 +
  34 + data['problems'] = data['health']['analyzeProcessFailed'] or data['health'][
  35 + 'formatProcessFailed'] or data['health']['resolveProcessFailed']
  36 + data['healthErrors'] = data['health']['analyzerErrorCount']
  37 + data['healthWarnings'] = data['health']['analyzerWarningCount']
  38 + data['healthHint'] = data['health']['analyzerHintCount']
  39 + data['healthConflict'] = data['health']['platformConflictCount']
  40 +
  41 + print('Package {packageName} version {packageVersion}'.format(**data))
  42 + parse_key(data['health'])
  43 + parse_key(data['maintenance'])
  44 +
  45 +if __name__ == "__main__":
  46 + main()