lint/lib/functions/tapLibrary.sh
2020-11-20 09:12:31 -06:00

131 lines
5.1 KiB
Bash
Executable file

#!/usr/bin/env bash
################################################################################
################################################################################
########### Super-Linter linting Functions @admiralawkbar ######################
################################################################################
################################################################################
########################## FUNCTION CALLS BELOW ################################
################################################################################
################################################################################
#### Function IsTap ############################################################
function IsTAP() {
if [ "${OUTPUT_FORMAT}" == "tap" ]; then
return 0
else
return 1
fi
}
################################################################################
#### Function TransformTAPDetails ##############################################
function TransformTAPDetails() {
DATA=${1}
if [ -n "${DATA}" ] && [ "${OUTPUT_DETAILS}" == "detailed" ]; then
############################################################
# Transform new lines to \\n, remove colours and colons. #
# Additionally, remove some dynamic parts from generated #
# reports. #
############################################################
echo "${DATA}" |
awk 'BEGIN{RS="\n";ORS="\\n"}1' |
sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" |
sed 's/\x1B\[[0-9;]\{1,\}[A-Za-z]//g' |
sed -r "s/\s\([0-9]*\sms\)//g" |
sed -r "s/\s[0-9]*ms//g" |
sed -r "s/S[0-9]{4}//g" |
sed -r "s/js:[0-9]*:[0-9]*/js/g" |
sed -r "s/[.0-9]*\sseconds/seconds/g" |
sed -r "s/\[terragrunt\]\s[0-9]{4}\/[0-9]{2}\/[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}/[terragrunt]/g" |
sed -r "s/(after|before)\s[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{1,6}/before/g" |
sed -r "s/used\s[0-9]{1,}\.*[0-9]{0,}MB\sof\smemory/used/g" |
tr ':' ' '
fi
}
################################################################################
#### Function HeaderTap ########################################################
function HeaderTap() {
################
# Pull in Vars #
################
INDEX="${1}" # File being validated
OUTPUT_FILE="${2}" # Output location
###################
# Print the goods #
###################
printf "TAP version 13\n1..%s\n" "${INDEX}" >"${OUTPUT_FILE}"
}
################################################################################
#### Function OkTap ############################################################
function OkTap() {
################
# Pull in Vars #
################
INDEX="${1}" # Location
FILE="${2}" # File being validated
TEMP_FILE="${3}" # Temp file location
###################
# Print the goods #
###################
echo "ok ${INDEX} - ${FILE}" >>"${TEMP_FILE}"
}
################################################################################
#### Function NotOkTap #########################################################
function NotOkTap() {
################
# Pull in Vars #
################
INDEX="${1}" # Location
FILE="${2}" # File being validated
TEMP_FILE="${3}" # Temp file location
###################
# Print the goods #
###################
echo "not ok ${INDEX} - ${FILE}" >>"${TEMP_FILE}"
}
################################################################################
#### Function AddDetailedMessageIfEnabled ######################################
function AddDetailedMessageIfEnabled() {
################
# Pull in Vars #
################
LINT_CMD="${1}" # Linter command
TEMP_FILE="${2}" # Temp file
####################
# Check the return #
####################
DETAILED_MSG=$(TransformTAPDetails "${LINT_CMD}")
if [ -n "${DETAILED_MSG}" ]; then
printf " ---\n message: %s\n ...\n" "${DETAILED_MSG}" >>"${TEMP_FILE}"
fi
}
################################################################################
#### Function Reports ##########################################################
Reports() {
info "----------------------------------------------"
info "----------------------------------------------"
info "Generated reports:"
info "----------------------------------------------"
info "----------------------------------------------"
###################################
# Prints output report if enabled #
###################################
if [ -z "${FORMAT_REPORT}" ]; then
info "Reports generated in folder ${REPORT_OUTPUT_FOLDER}"
#############################################
# Print info on reports that were generated #
#############################################
if [ -d "${REPORT_OUTPUT_FOLDER}" ]; then
info "Contents of report folder:"
OUTPUT_CONTENTS_CMD=$(ls "${REPORT_OUTPUT_FOLDER}")
info "$OUTPUT_CONTENTS_CMD"
else
warn "Report output folder (${REPORT_OUTPUT_FOLDER}) does NOT exist."
fi
fi
}
################################################################################