Blame lint/generate-report.sh

Packit 8fda33
#!/bin/sh
Packit 8fda33
SEP=`printf '\t'`
Packit 8fda33
OUTPUT=/dev/stderr
Packit 8fda33
CWD=`pwd`
Packit 8fda33
SRCDIR=`dirname $0`
Packit 8fda33
Packit 8fda33
run_lint() {
Packit 8fda33
  eslint -f unix "$@" .
Packit 8fda33
}
Packit 8fda33
Packit 8fda33
parse_opts() {
Packit 8fda33
  tmp=`getopt -l output: o: "$@"`
Packit 8fda33
  [ $? -ne 0 ] && exit 1
Packit 8fda33
Packit 8fda33
  eval set -- $tmp
Packit 8fda33
  while true
Packit 8fda33
  do
Packit 8fda33
    case $1 in
Packit 8fda33
      --output|-o)
Packit 8fda33
        OUTPUT=`realpath $2`; shift 2; continue ;;
Packit 8fda33
      --)
Packit 8fda33
        shift; break ;;
Packit 8fda33
    esac
Packit 8fda33
  done
Packit 8fda33
}
Packit 8fda33
Packit 8fda33
# delete lines that don't start with '/',
Packit 8fda33
# replace the first space with tab, sort
Packit 8fda33
process_for_join() {
Packit 8fda33
  sed -E "/\//!d; s|(\S+)\s|\1$SEP|" | sort -k 1b,1
Packit 8fda33
}
Packit 8fda33
Packit 8fda33
# re-replace tab with space
Packit 8fda33
process_post_join() {
Packit 8fda33
  sed -E "s|$SEP| |"
Packit 8fda33
}
Packit 8fda33
Packit 8fda33
create_report() {
Packit 8fda33
  tmp1=`mktemp --tmpdir lint-XXXX`
Packit 8fda33
  run_lint | process_for_join > $tmp1
Packit 8fda33
Packit 8fda33
  tmp2=`mktemp --tmpdir lint-XXXX`
Packit 8fda33
  run_lint -c lint/eslintrc-legacy.json | process_for_join > $tmp2
Packit 8fda33
Packit 8fda33
  join -t"$SEP" -o '0,1.2' $tmp1 $tmp2 | process_post_join
Packit 8fda33
  rm $tmp1 $tmp2
Packit 8fda33
}
Packit 8fda33
Packit 8fda33
Packit 8fda33
parse_opts "$@"
Packit 8fda33
Packit 8fda33
cd $SRCDIR/..
Packit 8fda33
Packit 8fda33
create_report | tee $OUTPUT | grep -q .
Packit 8fda33
rv=$(( $? == 0 ))
Packit 8fda33
Packit 8fda33
cd $CWD
Packit 8fda33
Packit 8fda33
[ $rv -eq 0 -a -f $OUTPUT ] && rm $OUTPUT
Packit 8fda33
Packit 8fda33
exit $rv