#!/bin/bash

# to run lint on all modules, type
#  lint_all | tee lint_all.std

#-------------------------------------------------------------------------
# list all blocks
#-------------------------------------------------------------------------
declare -a blocks=(
  "alert_handler"
  "pinmux"
  "padctrl"
  "padring"
  "gpio"
  "rv_core_ibex"
  "rv_dm"
  "rv_plic"
  "spi_device"
  "rv_timer"
  "uart"
  "hmac"
  "flash_ctrl"
  "usbuart"
  "usbdev"
  "usb_fs_nb_pe"
  "tlul_adapter_sram"
  "tlul_socket_1n"
  "tlul_socket_m1"
  "sram2tlul"
  "xbar_main"
  "top_earlgrey"
)

#-------------------------------------------------------------------------
# print header
#-------------------------------------------------------------------------
printf "NUMBER OF LINT ERRORS PER BLOCK:\n\n"
format="%20s %10s %10s \n"
printf "${format}" "Block" "Errors" "Warnings"
echo "-------------------------------------------"

#-------------------------------------------------------------------------
# run lint and summarize results
#-------------------------------------------------------------------------
\rm -Rf build ascent_project lint_*.log lint_*.rpt

for block in "${blocks[@]}" ; do

  lint $block > /dev/null 2>&1
  cp lint.log lint_${block}.log
  cp lint.rpt lint_${block}.rpt

  # summarize results
  crash=`grep "^  ERR" lint.log`
  if [ $? -eq 0 ]; then
    error_cnt="CRASH"
    warni_cnt="CRASH"
  else
    error_cnt=`grep "^E  " lint.rpt | wc -l`
    warni_cnt=`grep "^W  " lint.rpt | wc -l`
  fi
  printf "${format}" `echo $block | rev | cut -d"/" -f2 | rev` $error_cnt $warni_cnt
done

#-------------------------------------------------------------------------
# generate detailed reports
#-------------------------------------------------------------------------
printf "\n\nLIST OF ERRORS (E) AND WARNINGS (W) FOR EACH BLOCK:"
for block in "${blocks[@]}" ; do

  printf "\n\n${block}\n"

  # grep for lint crashes and lint errors, and limit line length
  grep "^  ERR" -A 2 lint_${block}.log | cut -c -200
  grep "^E  "        lint_${block}.rpt | cut -c -200
  grep "^W  "        lint_${block}.rpt | cut -c -200

done
