#!/bin/bash

set -u

if [ -z "${REPORTS_DIRECTORY:-}" ] ; then
  export REPORTS_DIRECTORY='reports'
fi

if [ -z "${WORKSPACE:-}" ] ; then
  echo "Error: WORKSPACE unset, please run inside Jenkins. ">&2
  exit 1
fi

if ! [ -d source ] ; then
  echo "Error: no source directory found, please run inside Jenkins." >&2
  exit 1
fi

# start with clean report dir
rm -rf "${REPORTS_DIRECTORY}"

# run all tap tools at once, in parallel
find source -type f ! -path '*.svn*' ! -path '*.git/*' ! -name '.gitignore' -prune | parallel -v -- \
  mkdir -p ${REPORTS_DIRECTORY}'/'{//} ';' \
  /usr/bin/shellcheck_tap '{}' '>' ${REPORTS_DIRECTORY}'/{}_shellcheck.tap' ';' \
  /usr/bin/checkbashism_tap '{}' '>' ${REPORTS_DIRECTORY}'/{}_checkbashism.tap' ';' \
  /usr/bin/perlcritic_tap '{}' '>' ${REPORTS_DIRECTORY}'/{}_perlcritic.tap' ';' \
  /usr/bin/pep8_tap '{}' '>' ${REPORTS_DIRECTORY}'/{}_pep8.tap' ';'

# get rid of empty files
find "${REPORTS_DIRECTORY}" -type f -empty -exec rm {} +

## END OF FILE #################################################################
