Variable braces

This commit is contained in:
Eric Nemchik 2020-07-21 12:09:07 -05:00
parent 1cfe0d5679
commit 9451e491c4
11 changed files with 726 additions and 726 deletions

View file

@ -51,25 +51,25 @@ ValidateInput() {
############################
# Validate GITHUB_WORKSPACE #
############################
if [ -z "$GITHUB_WORKSPACE" ]; then
if [ -z "${GITHUB_WORKSPACE}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GITHUB_WORKSPACE}]${NC}"
exit 1
else
echo "Successfully found:[GITHUB_WORKSPACE], value:[$GITHUB_WORKSPACE]"
echo "Successfully found:[GITHUB_WORKSPACE], value:[${GITHUB_WORKSPACE}]"
fi
#######################
# Validate IMAGE_REPO #
#######################
if [ -z "$IMAGE_REPO" ]; then
if [ -z "${IMAGE_REPO}" ]; then
# No repo was pulled
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_REPO]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_REPO]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${IMAGE_REPO}]${NC}"
exit 1
elif [[ $IMAGE_REPO == "github/super-linter" ]]; then
elif [[ ${IMAGE_REPO} == "github/super-linter" ]]; then
# Found our main repo
echo "Successfully found:[IMAGE_REPO], value:[$IMAGE_REPO]"
echo "Successfully found:[IMAGE_REPO], value:[${IMAGE_REPO}]"
else
# This is a fork and we cant pull vars or any info
echo -e "${NC}${F[Y]}WARN!${NC} No image to cleanup as this is a forked branch, and not being built with current automation!${NC}"
@ -79,31 +79,31 @@ ValidateInput() {
##########################
# Validate IMAGE_VERSION #
##########################
if [ -z "$IMAGE_VERSION" ]; then
if [ -z "${IMAGE_VERSION}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_VERSION]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_VERSION]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${IMAGE_VERSION}]${NC}"
exit 1
else
echo "Successfully found:[IMAGE_VERSION], value:[$IMAGE_VERSION]"
echo "Successfully found:[IMAGE_VERSION], value:[${IMAGE_VERSION}]"
fi
############################
# Validate DOCKER_USERNAME #
############################
if [ -z "$DOCKER_USERNAME" ]; then
if [ -z "${DOCKER_USERNAME}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_USERNAME]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_USERNAME]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${DOCKER_USERNAME}]${NC}"
exit 1
else
echo "Successfully found:[DOCKER_USERNAME], value:[$DOCKER_USERNAME]"
echo "Successfully found:[DOCKER_USERNAME], value:[${DOCKER_USERNAME}]"
fi
############################
# Validate DOCKER_PASSWORD #
############################
if [ -z "$DOCKER_PASSWORD" ]; then
if [ -z "${DOCKER_PASSWORD}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_PASSWORD]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_PASSWORD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${DOCKER_PASSWORD}]${NC}"
exit 1
else
echo "Successfully found:[DOCKER_PASSWORD], value:[********]"
@ -112,11 +112,11 @@ ValidateInput() {
##################################################
# Check if we need to get the name of the branch #
##################################################
if [[ $IMAGE_VERSION != "latest" ]]; then
if [[ ${IMAGE_VERSION} != "latest" ]]; then
##################################
# Remove non alpha-numeric chars #
##################################
IMAGE_VERSION=$(echo "$IMAGE_VERSION" | tr -cd '[:alnum:]')
IMAGE_VERSION=$(echo "${IMAGE_VERSION}" | tr -cd '[:alnum:]')
else
#############################################
# Image is 'latest' and we will not destroy #
@ -142,7 +142,7 @@ LoginToDocker() {
######################
# Login to DockerHub #
######################
LOGIN_CMD=$(docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" 2>&1)
LOGIN_CMD=$(docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" 2>&1)
#######################
# Load the error code #
@ -152,10 +152,10 @@ LoginToDocker() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to DockerHub!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LOGIN_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LOGIN_CMD}]${NC}"
exit 1
else
# SUCCESS
@ -170,7 +170,7 @@ RemoveImage() {
################
echo ""
echo "----------------------------------------------"
echo "Removing the DockerFile image:[$IMAGE_REPO:$IMAGE_VERSION]"
echo "Removing the DockerFile image:[${IMAGE_REPO}:${IMAGE_VERSION}]"
echo "----------------------------------------------"
echo ""
@ -180,7 +180,7 @@ RemoveImage() {
TOKEN=$(curl -s -k \
-H "Content-Type: application/json" \
-X POST \
-d "{\"username\": \"$DOCKER_USERNAME\", \"password\": \"$DOCKER_PASSWORD\"}" \
-d "{\"username\": \"${DOCKER_USERNAME}\", \"password\": \"${DOCKER_PASSWORD}\"}" \
"https://hub.docker.com/v2/users/login/" | jq -r .token 2>&1)
#######################
@ -191,10 +191,10 @@ RemoveImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain token from DockerHub!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$TOKEN]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${TOKEN}]${NC}"
exit 1
else
# SUCCESS
@ -204,9 +204,9 @@ RemoveImage() {
#################################
# Remove the tag from DockerHub #
#################################
REMOVE_CMD=$(curl "https://hub.docker.com/v2/repositories/$IMAGE_REPO/tags/$IMAGE_VERSION/" \
REMOVE_CMD=$(curl "https://hub.docker.com/v2/repositories/${IMAGE_REPO}/tags/${IMAGE_VERSION}/" \
-X DELETE \
-H "Authorization: JWT $TOKEN" 2>&1)
-H "Authorization: JWT ${TOKEN}" 2>&1)
#######################
# Load the ERROR_CODE #
@ -216,14 +216,14 @@ RemoveImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to remove tag from DockerHub!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$REMOVE_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${REMOVE_CMD}]${NC}"
exit 1
else
# SUCCESS
echo "Successfully [removed] Docker image tag:[$IMAGE_VERSION] from DockerHub!"
echo "Successfully [removed] Docker image tag:[${IMAGE_VERSION}] from DockerHub!"
fi
}
################################################################################

View file

@ -26,23 +26,23 @@ CheckGHEPid()
##################################
# Check to prevent infinite loop #
##################################
if [ $PID_CHECK -gt $PID_CHECK_LIMIT ]; then
if [ ${PID_CHECK} -gt ${PID_CHECK_LIMIT} ]; then
# Over the limit, move on
echo "We have checked the pid $PID_CHECK times, moving on..."
echo "We have checked the pid ${PID_CHECK} times, moving on..."
else
################################################
# Check to see if the PID is alive and running #
################################################
if [ ! -f "$GHE_CONFIG_PID" ]; then
if [ ! -f "${GHE_CONFIG_PID}" ]; then
# File not found
echo "We're good to move forward, no .pid file found at:[$GHE_CONFIG_PID]"
echo "We're good to move forward, no .pid file found at:[${GHE_CONFIG_PID}]"
else
# Found the pid running, need to sleep
echo "Current PID found, sleeping $SLEEP_SECONDS seconds before next check..."
echo "Current PID found, sleeping ${SLEEP_SECONDS} seconds before next check..."
################
# Sleep it off #
################
SLEEP_CMD=$(sleep $SLEEP_SECONDS 2>&1)
SLEEP_CMD=$(sleep ${SLEEP_SECONDS} 2>&1)
#######################
# Load the error code #
@ -52,9 +52,9 @@ CheckGHEPid()
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to sleep!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SLEEP_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${SLEEP_CMD}]${NC}"
echo "Will try to call apply as last effort..."
####################################
# Call config apply as last effort #
@ -80,14 +80,14 @@ CheckGHEProcess()
##################################
# Check to prevent infinite loop #
##################################
if [ $PROCESS_CHECK -gt $PROCESS_CHECK_LIMIT ]; then
if [ ${PROCESS_CHECK} -gt ${PROCESS_CHECK_LIMIT} ]; then
# Over the limit, move on
echo "We have checked the process $PROCESS_CHECK times, moving on..."
echo "We have checked the process ${PROCESS_CHECK} times, moving on..."
else
####################################################
# Check to see if the process is alive and running #
####################################################
CHECK_PROCESS_CMD=$(pgrep -f "$GHE_APPLY_COMMAND" 2>&1)
CHECK_PROCESS_CMD=$(pgrep -f "${GHE_APPLY_COMMAND}" 2>&1)
#######################
# Load the error code #
@ -97,16 +97,16 @@ CheckGHEProcess()
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# No process running on the system
echo "Were good to move forward, no process like:[$GHE_APPLY_COMMAND] running currently on the system"
echo "Were good to move forward, no process like:[${GHE_APPLY_COMMAND}] running currently on the system"
else
# Found the process running, need to sleep
echo "Current process alive:[$CHECK_PROCESS_CMD], sleeping $SLEEP_SECONDS seconds before next check..."
echo "Current process alive:[${CHECK_PROCESS_CMD}], sleeping ${SLEEP_SECONDS} seconds before next check..."
################
# Sleep it off #
################
SLEEP_CMD=$(sleep $SLEEP_SECONDS 2>&1)
SLEEP_CMD=$(sleep ${SLEEP_SECONDS} 2>&1)
#######################
# Load the error code #
@ -116,9 +116,9 @@ CheckGHEProcess()
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to sleep!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SLEEP_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${SLEEP_CMD}]${NC}"
echo "Will try to call apply as last effort..."
####################################
# Call config apply as last effort #
@ -144,7 +144,7 @@ RunConfigApply()
##########
# Header #
##########
echo "Running $GHE_APPLY_COMMAND to the server..."
echo "Running ${GHE_APPLY_COMMAND} to the server..."
##############################################
# Run the command to apply changes to server #
@ -159,14 +159,14 @@ RunConfigApply()
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Errors
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to run config apply command!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$APPLY_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${APPLY_CMD}]${NC}"
exit 1
else
# Success
echo -e "${NC}${F[B]}Successfully ran ${F[C]}$GHE_APPLY_COMMAND${NC}"
echo -e "${NC}${F[B]}Successfully ran ${F[C]}${GHE_APPLY_COMMAND}${NC}"
fi
}
################################################################################

View file

@ -7,11 +7,11 @@ HELLO_WORLD=$(echo "Hello World" | cut -f1 -d' ' 2>&1)
ERROR_CODE=$?
# Check the shell
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
echo "We did it!"
exit 0
else
echo "We done goofed it..."
echo "$HELLO_WORLD"
echo "${HELLO_WORLD}"
exit 1
fi

View file

@ -37,7 +37,7 @@ UPDATE_MAJOR_TAG=0 # Flag to deploy the major tag version as
Header() {
echo ""
echo "-------------------------------------------------------"
echo "---- GitHub Actions Upload image to [$REGISTRY] ----"
echo "---- GitHub Actions Upload image to [${REGISTRY}] ----"
echo "-------------------------------------------------------"
echo ""
}
@ -57,46 +57,46 @@ ValidateInput() {
#############################
# Validate GITHUB_WORKSPACE #
#############################
if [ -z "$GITHUB_WORKSPACE" ]; then
if [ -z "${GITHUB_WORKSPACE}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GITHUB_WORKSPACE}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_WORKSPACE]${F[B]}, value:${F[W]}[$GITHUB_WORKSPACE]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_WORKSPACE]${F[B]}, value:${F[W]}[${GITHUB_WORKSPACE}]${NC}"
fi
#####################
# Validate REGISTRY #
#####################
if [ -z "$REGISTRY" ]; then
if [ -z "${REGISTRY}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [REGISTRY]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$REGISTRY]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${REGISTRY}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[REGISTRY]${F[B]}, value:${F[W]}[$REGISTRY]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[REGISTRY]${F[B]}, value:${F[W]}[${REGISTRY}]${NC}"
fi
#####################################################
# See if we need values for GitHub package Registry #
#####################################################
if [[ $REGISTRY == "GPR" ]]; then
if [[ ${REGISTRY} == "GPR" ]]; then
#########################
# Validate GPR_USERNAME #
#########################
if [ -z "$GPR_USERNAME" ]; then
if [ -z "${GPR_USERNAME}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GPR_USERNAME]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GPR_USERNAME]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GPR_USERNAME}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GPR_USERNAME]${F[B]}, value:${F[W]}[$GPR_USERNAME]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GPR_USERNAME]${F[B]}, value:${F[W]}[${GPR_USERNAME}]${NC}"
fi
######################
# Validate GPR_TOKEN #
######################
if [ -z "$GPR_TOKEN" ]; then
if [ -z "${GPR_TOKEN}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GPR_TOKEN]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GPR_TOKEN]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GPR_TOKEN}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GPR_TOKEN]${F[B]}, value:${F[W]}[********]${NC}"
@ -104,24 +104,24 @@ ValidateInput() {
########################################
# See if we need values for Ducker hub #
########################################
elif [[ $REGISTRY == "Docker" ]]; then
elif [[ ${REGISTRY} == "Docker" ]]; then
############################
# Validate DOCKER_USERNAME #
############################
if [ -z "$DOCKER_USERNAME" ]; then
if [ -z "${DOCKER_USERNAME}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_USERNAME]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_USERNAME]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${DOCKER_USERNAME}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKER_USERNAME]${F[B]}, value:${F[W]}[$DOCKER_USERNAME]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKER_USERNAME]${F[B]}, value:${F[W]}[${DOCKER_USERNAME}]${NC}"
fi
############################
# Validate DOCKER_PASSWORD #
############################
if [ -z "$DOCKER_PASSWORD" ]; then
if [ -z "${DOCKER_PASSWORD}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_PASSWORD]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_PASSWORD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${DOCKER_PASSWORD}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKER_PASSWORD]${F[B]}, value:${F[B]}[********]${NC}"
@ -131,39 +131,39 @@ ValidateInput() {
###########################################
else
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find a valid registry!${NC}"
echo "Registry:[$REGISTRY]"
echo "Registry:[${REGISTRY}]"
exit 1
fi
#######################
# Validate IMAGE_REPO #
#######################
if [ -z "$IMAGE_REPO" ]; then
if [ -z "${IMAGE_REPO}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_REPO]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_REPO]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${IMAGE_REPO}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[IMAGE_REPO]${F[B]}, value:${F[W]}[$IMAGE_REPO]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[IMAGE_REPO]${F[B]}, value:${F[W]}[${IMAGE_REPO}]${NC}"
###############################################
# Need to see if GPR registry and update name #
###############################################
if [[ $REGISTRY == "GPR" ]]; then
NAME="docker.pkg.github.com/$IMAGE_REPO/super-linter"
IMAGE_REPO="$NAME"
echo "Updated [IMAGE_REPO] to:[$IMAGE_REPO] for GPR"
if [[ ${REGISTRY} == "GPR" ]]; then
NAME="docker.pkg.github.com/${IMAGE_REPO}/super-linter"
IMAGE_REPO="${NAME}"
echo "Updated [IMAGE_REPO] to:[${IMAGE_REPO}] for GPR"
fi
fi
##########################
# Validate IMAGE_VERSION #
##########################
if [ -z "$IMAGE_VERSION" ]; then
if [ -z "${IMAGE_VERSION}" ]; then
echo -e "${NC}${F[Y]}WARN!${NC} Failed to get [IMAGE_VERSION]!${NC}"
echo "Pulling from Branch Name..."
##############################
# Get the name of the branch #
##############################
BRANCH_NAME=$(git -C "$GITHUB_WORKSPACE" branch --contains "$GITHUB_SHA" | awk '{print $2}' 2>&1)
BRANCH_NAME=$(git -C "${GITHUB_WORKSPACE}" branch --contains "${GITHUB_SHA}" | awk '{print ${2}}' 2>&1)
#######################
# Load the error code #
@ -173,24 +173,24 @@ ValidateInput() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get branch name!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$BRANCH_NAME]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${BRANCH_NAME}]${NC}"
exit 1
fi
##################################
# Remove non alpha-numeric chars #
##################################
BRANCH_NAME=$(echo "$BRANCH_NAME" | tr -cd '[:alnum:]')
BRANCH_NAME=$(echo "${BRANCH_NAME}" | tr -cd '[:alnum:]')
############################################
# Set the IMAGE_VERSION to the BRANCH_NAME #
############################################
IMAGE_VERSION="$BRANCH_NAME"
echo "Tag:[$IMAGE_VERSION]"
IMAGE_VERSION="${BRANCH_NAME}"
echo "Tag:[${IMAGE_VERSION}]"
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[IMAGE_VERSION]${F[B]}, value:${F[W]}[$IMAGE_VERSION]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[IMAGE_VERSION]${F[B]}, value:${F[W]}[${IMAGE_VERSION}]${NC}"
fi
##################################
@ -201,31 +201,31 @@ ValidateInput() {
######################################################################
# Check if this is a latest to a versioned release at create new tag #
######################################################################
if [[ $IMAGE_VERSION =~ $REGEX ]]; then
if [[ ${IMAGE_VERSION} =~ ${REGEX} ]]; then
# Need to get the major version, and set flag to update
#####################
# Set the major tag #
#####################
MAJOR_TAG=$(echo "$IMAGE_VERSION" | cut -d '.' -f1)
MAJOR_TAG=$(echo "${IMAGE_VERSION}" | cut -d '.' -f1)
###################################
# Set flag for updating major tag #
###################################
UPDATE_MAJOR_TAG=1
echo "- Also deploying a major tag of:[$MAJOR_TAG]"
echo "- Also deploying a major tag of:[${MAJOR_TAG}]"
fi
############################
# Validate DOCKERFILE_PATH #
############################
if [ -z "$DOCKERFILE_PATH" ]; then
if [ -z "${DOCKERFILE_PATH}" ]; then
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKERFILE_PATH]!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKERFILE_PATH]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${DOCKERFILE_PATH}]${NC}"
exit 1
else
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKERFILE_PATH]${F[B]}, value:${F[W]}[$DOCKERFILE_PATH]${NC}"
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKERFILE_PATH]${F[B]}, value:${F[W]}[${DOCKERFILE_PATH}]${NC}"
fi
}
################################################################################
@ -234,24 +234,24 @@ Authenticate() {
################
# Pull in Vars #
################
USERNAME="$1" # Name to auth with
PASSWORD="$2" # Password to auth with
URL="$3" # Url to auth towards
NAME="$4" # name of the service
USERNAME="${1}" # Name to auth with
PASSWORD="${2}" # Password to auth with
URL="${3}" # Url to auth towards
NAME="${4}" # name of the service
################
# Print header #
################
echo ""
echo "----------------------------------------------"
echo "Login to $NAME..."
echo "Login to ${NAME}..."
echo "----------------------------------------------"
echo ""
###################
# Auth to service #
###################
LOGIN_CMD=$(docker login "$URL" --username "$USERNAME" --password "$PASSWORD" 2>&1)
LOGIN_CMD=$(docker login "${URL}" --username "${USERNAME}" --password "${PASSWORD}" 2>&1)
#######################
# Load the error code #
@ -261,14 +261,14 @@ Authenticate() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to $NAME!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LOGIN_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to ${NAME}!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LOGIN_CMD}]${NC}"
exit 1
else
# SUCCESS
echo -e "${NC}${F[B]}Successfully authenticated to ${F[C]}$NAME${F[B]}!${NC}"
echo -e "${NC}${F[B]}Successfully authenticated to ${F[C]}${NAME}${F[B]}!${NC}"
fi
}
################################################################################
@ -286,9 +286,9 @@ BuildImage() {
################################
# Validate the DOCKERFILE_PATH #
################################
if [ ! -f "$DOCKERFILE_PATH" ]; then
if [ ! -f "${DOCKERFILE_PATH}" ]; then
# No file found
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to find Dockerfile at:[$DOCKERFILE_PATH]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to find Dockerfile at:[${DOCKERFILE_PATH}]${NC}"
echo "Please make sure you give full path!"
echo "Example:[/configs/Dockerfile] or [Dockerfile] if at root directory"
exit 1
@ -297,7 +297,7 @@ BuildImage() {
###################
# Build the image #
###################
docker build --no-cache -t "$IMAGE_REPO:$IMAGE_VERSION" -f "$DOCKERFILE_PATH" . 2>&1
docker build --no-cache -t "${IMAGE_REPO}:${IMAGE_VERSION}" -f "${DOCKERFILE_PATH}" . 2>&1
#######################
# Load the error code #
@ -307,7 +307,7 @@ BuildImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [build] Dockerfile!${NC}"
exit 1
@ -319,9 +319,9 @@ BuildImage() {
########################################################
# Need to see if we need to tag a major update as well #
########################################################
if [ $UPDATE_MAJOR_TAG -eq 1 ]; then
if [ ${UPDATE_MAJOR_TAG} -eq 1 ]; then
# Tag the image with the major tag as well
docker build -t "$IMAGE_REPO:$MAJOR_TAG" -f "$DOCKERFILE_PATH" . 2>&1
docker build -t "${IMAGE_REPO}:${MAJOR_TAG}" -f "${DOCKERFILE_PATH}" . 2>&1
#######################
# Load the error code #
@ -331,7 +331,7 @@ BuildImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [tag] Dockerfile!${NC}"
exit 1
@ -349,14 +349,14 @@ UploadImage() {
################
echo ""
echo "----------------------------------------------"
echo "Uploading the DockerFile image to $REGISTRY..."
echo "Uploading the DockerFile image to ${REGISTRY}..."
echo "----------------------------------------------"
echo ""
############################################
# Upload the docker image that was created #
############################################
docker push "$IMAGE_REPO:$IMAGE_VERSION" 2>&1
docker push "${IMAGE_REPO}:${IMAGE_VERSION}" 2>&1
#######################
# Load the error code #
@ -366,20 +366,20 @@ UploadImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [upload] Dockerfile!${NC}"
exit 1
else
# SUCCESS
echo -e "${NC}${F[B]}Successfully Uploaded Docker image:${F[W]}[$IMAGE_VERSION]${F[B]} to ${F[C]}$REGISTRY${F[B]}!${NC}"
echo -e "${NC}${F[B]}Successfully Uploaded Docker image:${F[W]}[${IMAGE_VERSION}]${F[B]} to ${F[C]}${REGISTRY}${F[B]}!${NC}"
fi
#########################
# Get Image information #
#########################
IFS=$'\n' # Set the delimit to newline
GET_INFO_CMD=$(docker images | grep "$IMAGE_REPO" | grep "$IMAGE_VERSION" 2>&1)
GET_INFO_CMD=$(docker images | grep "${IMAGE_REPO}" | grep "${IMAGE_VERSION}" 2>&1)
#######################
# Load the error code #
@ -389,18 +389,18 @@ UploadImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get information about built Image!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GET_INFO_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GET_INFO_CMD}]${NC}"
exit 1
else
################
# Get the data #
################
REPO=$(echo "$GET_INFO_CMD" | awk '{print $1}')
TAG=$(echo "$GET_INFO_CMD" | awk '{print $2}')
IMAGE_ID=$(echo "$GET_INFO_CMD" | awk '{print $3}')
REPO=$(echo "${GET_INFO_CMD}" | awk '{print ${1}}')
TAG=$(echo "${GET_INFO_CMD}" | awk '{print ${2}}')
IMAGE_ID=$(echo "${GET_INFO_CMD}" | awk '{print ${3}}')
SIZE="${GET_INFO_CMD##* }"
###################
@ -408,21 +408,21 @@ UploadImage() {
###################
echo "----------------------------------------------"
echo "Docker Image Details:"
echo "Repository:[$REPO]"
echo "Tag:[$TAG]"
echo "Image_ID:[$IMAGE_ID]"
echo "Size:[$SIZE]"
echo "Repository:[${REPO}]"
echo "Tag:[${TAG}]"
echo "Image_ID:[${IMAGE_ID}]"
echo "Size:[${SIZE}]"
echo "----------------------------------------------"
fi
###############################################################
# Check if we need to upload the major tagged version as well #
###############################################################
if [ $UPDATE_MAJOR_TAG -eq 1 ]; then
if [ ${UPDATE_MAJOR_TAG} -eq 1 ]; then
############################################
# Upload the docker image that was created #
############################################
docker push "$IMAGE_REPO:$MAJOR_TAG" 2>&1
docker push "${IMAGE_REPO}:${MAJOR_TAG}" 2>&1
#######################
# Load the error code #
@ -432,13 +432,13 @@ UploadImage() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# ERROR
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [upload] MAJOR_TAG:[$MAJOR_TAG] Dockerfile!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [upload] MAJOR_TAG:[${MAJOR_TAG}] Dockerfile!${NC}"
exit 1
else
# SUCCESS
echo -e "${NC}${F[B]}Successfully Uploaded TAG:${F[W]}[$MAJOR_TAG]${F[B]} of Docker image to ${F[C]}$REGISTRY${F[B]}!${NC}"
echo -e "${NC}${F[B]}Successfully Uploaded TAG:${F[W]}[${MAJOR_TAG}]${F[B]} of Docker image to ${F[C]}${REGISTRY}${F[B]}!${NC}"
fi
fi
}
@ -473,23 +473,23 @@ BuildImage
######################
# Login to DockerHub #
######################
if [[ $REGISTRY == "Docker" ]]; then
if [[ ${REGISTRY} == "Docker" ]]; then
# Authenticate "Username" "Password" "Url" "Name"
Authenticate "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "" "Dockerhub"
Authenticate "${DOCKER_USERNAME}" "${DOCKER_PASSWORD}" "" "Dockerhub"
####################################
# Login to GitHub Package Registry #
####################################
elif [[ $REGISTRY == "GPR" ]]; then
elif [[ ${REGISTRY} == "GPR" ]]; then
# Authenticate "Username" "Password" "Url" "Name"
Authenticate "$GPR_USERNAME" "$GPR_TOKEN" "https://docker.pkg.github.com" "GitHub Package Registry"
Authenticate "${GPR_USERNAME}" "${GPR_TOKEN}" "https://docker.pkg.github.com" "GitHub Package Registry"
else
#########
# ERROR #
#########
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Registry not set correctly!${NC}"
echo "Registry:[$REGISTRY]"
echo "Registry:[${REGISTRY}]"
exit 1
fi

View file

@ -12,9 +12,9 @@ CODE_PATH='/tmp/lint' # Path to code base
##################
# Check the path #
##################
if [ ! -L $CODE_PATH ]; then
if [ ! -L ${CODE_PATH} ]; then
# Create symbolic link
ln -s "$PWD"/.automation/test $CODE_PATH
ln -s "${PWD}"/.automation/test ${CODE_PATH}
fi
#########################
@ -23,4 +23,4 @@ fi
export RUN_LOCAL=true
# shellcheck source=/dev/null
source "$PWD"/lib/linter.sh
source "${PWD}"/lib/linter.sh

View file

@ -126,7 +126,7 @@ ENV ARM_TTK_PSD1="${ARM_TTK_DIRECTORY}/arm-ttk-master/arm-ttk/arm-ttk.psd1"
RUN curl -sLO "${ARM_TTK_URI}" \
&& unzip "${ARM_TTK_NAME}" -d "${ARM_TTK_DIRECTORY}" \
&& rm "${ARM_TTK_NAME}" \
&& ln -sTf "$ARM_TTK_PSD1" /usr/bin/arm-ttk
&& ln -sTf "${ARM_TTK_PSD1}" /usr/bin/arm-ttk
######################
# Install shellcheck #

View file

@ -6,7 +6,7 @@
# 'Error'
# 'Warning'
#)
#IncludeDefaultRules=$true
#IncludeDefaultRules=${true}
#ExcludeRules = @(
# 'PSAvoidUsingWriteHost',
# 'MyCustomRuleName'
@ -15,4 +15,4 @@
# 'PSAvoidUsingWriteHost',
# 'MyCustomRuleName'
#)
}
}

View file

@ -16,7 +16,7 @@ function BuildFileList() {
################
# print header #
################
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
if [[ ${ACTIONS_RUNNER_DEBUG} == "true" ]]; then
echo ""
echo "----------------------------------------------"
echo "Pulling in code history and branches..."
@ -26,8 +26,8 @@ function BuildFileList() {
# Switch codebase back to the default branch to get a list of all files changed #
#################################################################################
SWITCH_CMD=$(
git -C "$GITHUB_WORKSPACE" pull --quiet
git -C "$GITHUB_WORKSPACE" checkout "$DEFAULT_BRANCH" 2>&1
git -C "${GITHUB_WORKSPACE}" pull --quiet
git -C "${GITHUB_WORKSPACE}" checkout "${DEFAULT_BRANCH}" 2>&1
)
#######################
@ -38,26 +38,26 @@ function BuildFileList() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
echo "Failed to switch to $DEFAULT_BRANCH branch to get files changed!"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SWITCH_CMD]${NC}"
echo "Failed to switch to ${DEFAULT_BRANCH} branch to get files changed!"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${SWITCH_CMD}]${NC}"
exit 1
fi
################
# print header #
################
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
if [[ ${ACTIONS_RUNNER_DEBUG} == "true" ]]; then
echo ""
echo "----------------------------------------------"
echo "Generating Diff with:[git diff --name-only '$DEFAULT_BRANCH..$GITHUB_SHA' --diff-filter=d]"
echo "Generating Diff with:[git diff --name-only '${DEFAULT_BRANCH}..${GITHUB_SHA}' --diff-filter=d]"
fi
#################################################
# Get the Array of files changed in the commits #
#################################################
mapfile -t RAW_FILE_ARRAY < <(git -C "$GITHUB_WORKSPACE" diff --name-only "$DEFAULT_BRANCH..$GITHUB_SHA" --diff-filter=d 2>&1)
mapfile -t RAW_FILE_ARRAY < <(git -C "${GITHUB_WORKSPACE}" diff --name-only "${DEFAULT_BRANCH}..${GITHUB_SHA}" --diff-filter=d 2>&1)
#######################
# Load the error code #
@ -67,7 +67,7 @@ function BuildFileList() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain a list of all files changed!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${RAW_FILE_ARRAY[*]}]${NC}"
@ -86,26 +86,26 @@ function BuildFileList() {
###########################
# Extract just the file and extension, reverse it, cut off extension,
# reverse it back, substitute to lowercase
FILE_TYPE=$(basename "$FILE" | rev | cut -f1 -d'.' | rev | awk '{print tolower($0)}')
FILE_TYPE=$(basename "${FILE}" | rev | cut -f1 -d'.' | rev | awk '{print tolower(${0})}')
##############
# Print file #
##############
echo "File:[$FILE], File_type:[$FILE_TYPE]"
echo "File:[${FILE}], File_type:[${FILE_TYPE}]"
#########
# DEBUG #
#########
#echo "FILE_TYPE:[$FILE_TYPE]"
#echo "FILE_TYPE:[${FILE_TYPE}]"
#####################
# Get the CFN files #
#####################
if [ "$FILE_TYPE" == "yml" ] || [ "$FILE_TYPE" == "yaml" ]; then
if [ "${FILE_TYPE}" == "yml" ] || [ "${FILE_TYPE}" == "yaml" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_YML+=("$FILE")
FILE_ARRAY_YML+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -114,11 +114,11 @@ function BuildFileList() {
#####################################
# Check if the file is CFN template #
#####################################
if DetectCloudFormationFile "$FILE"; then
if DetectCloudFormationFile "${FILE}"; then
################################
# Append the file to the array #
################################
FILE_ARRAY_CFN+=("$FILE")
FILE_ARRAY_CFN+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
@ -128,37 +128,37 @@ function BuildFileList() {
######################
# Get the JSON files #
######################
elif [ "$FILE_TYPE" == "json" ]; then
elif [ "${FILE_TYPE}" == "json" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_JSON+=("$FILE")
FILE_ARRAY_JSON+=("${FILE}")
############################
# Check if file is OpenAPI #
############################
if DetectOpenAPIFile "$FILE"; then
if DetectOpenAPIFile "${FILE}"; then
################################
# Append the file to the array #
################################
FILE_ARRAY_OPENAPI+=("$FILE")
FILE_ARRAY_OPENAPI+=("${FILE}")
fi
############################
# Check if file is ARM #
############################
if DetectARMFile "$FILE"; then
if DetectARMFile "${FILE}"; then
################################
# Append the file to the array #
################################
FILE_ARRAY_ARM+=("$FILE")
FILE_ARRAY_ARM+=("${FILE}")
fi
#####################################
# Check if the file is CFN template #
#####################################
if DetectCloudFormationFile "$FILE"; then
if DetectCloudFormationFile "${FILE}"; then
################################
# Append the file to the array #
################################
FILE_ARRAY_CFN+=("$FILE")
FILE_ARRAY_CFN+=("${FILE}")
fi
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
@ -167,11 +167,11 @@ function BuildFileList() {
#####################
# Get the XML files #
#####################
elif [ "$FILE_TYPE" == "xml" ]; then
elif [ "${FILE_TYPE}" == "xml" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_XML+=("$FILE")
FILE_ARRAY_XML+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -179,19 +179,19 @@ function BuildFileList() {
##########################
# Get the MARKDOWN files #
##########################
elif [ "$FILE_TYPE" == "md" ]; then
elif [ "${FILE_TYPE}" == "md" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_MARKDOWN+=("$FILE")
FILE_ARRAY_MARKDOWN+=("${FILE}")
######################
# Get the BASH files #
######################
elif [ "$FILE_TYPE" == "sh" ]; then
elif [ "${FILE_TYPE}" == "sh" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_BASH+=("$FILE")
FILE_ARRAY_BASH+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -199,11 +199,11 @@ function BuildFileList() {
######################
# Get the PERL files #
######################
elif [ "$FILE_TYPE" == "pl" ]; then
elif [ "${FILE_TYPE}" == "pl" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_PERL+=("$FILE")
FILE_ARRAY_PERL+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -211,13 +211,13 @@ function BuildFileList() {
######################
# Get the RAKU files #
######################
elif [ "$FILE_TYPE" == "raku" ] || [ "$FILE_TYPE" == "rakumod" ] \
|| [ "$FILE_TYPE" == "rakutest" ] || [ "$FILE_TYPE" == "pm6" ] \
|| [ "$FILE_TYPE" == "pl6" ] || [ "$FILE_TYPE" == "p6" ] ; then
elif [ "${FILE_TYPE}" == "raku" ] || [ "${FILE_TYPE}" == "rakumod" ] \
|| [ "${FILE_TYPE}" == "rakutest" ] || [ "${FILE_TYPE}" == "pm6" ] \
|| [ "${FILE_TYPE}" == "pl6" ] || [ "${FILE_TYPE}" == "p6" ] ; then
################################
# Append the file to the array #
################################
FILE_ARRAY_RAKU+=("$FILE")
FILE_ARRAY_RAKU+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -225,11 +225,11 @@ function BuildFileList() {
######################
# Get the PHP files #
######################
elif [ "$FILE_TYPE" == "php" ]; then
elif [ "${FILE_TYPE}" == "php" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_PHP+=("$FILE")
FILE_ARRAY_PHP+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -237,11 +237,11 @@ function BuildFileList() {
######################
# Get the RUBY files #
######################
elif [ "$FILE_TYPE" == "rb" ]; then
elif [ "${FILE_TYPE}" == "rb" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_RUBY+=("$FILE")
FILE_ARRAY_RUBY+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -249,11 +249,11 @@ function BuildFileList() {
########################
# Get the PYTHON files #
########################
elif [ "$FILE_TYPE" == "py" ]; then
elif [ "${FILE_TYPE}" == "py" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_PYTHON+=("$FILE")
FILE_ARRAY_PYTHON+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -261,11 +261,11 @@ function BuildFileList() {
########################
# Get the COFFEE files #
########################
elif [ "$FILE_TYPE" == "coffee" ]; then
elif [ "${FILE_TYPE}" == "coffee" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_COFFEESCRIPT+=("$FILE")
FILE_ARRAY_COFFEESCRIPT+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -273,12 +273,12 @@ function BuildFileList() {
############################
# Get the JavaScript files #
############################
elif [ "$FILE_TYPE" == "js" ]; then
elif [ "${FILE_TYPE}" == "js" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_JAVASCRIPT_ES+=("$FILE")
FILE_ARRAY_JAVASCRIPT_STANDARD+=("$FILE")
FILE_ARRAY_JAVASCRIPT_ES+=("${FILE}")
FILE_ARRAY_JAVASCRIPT_STANDARD+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -286,11 +286,11 @@ function BuildFileList() {
############################
# Get the JSX files #
############################
elif [ "$FILE_TYPE" == "jsx" ]; then
elif [ "${FILE_TYPE}" == "jsx" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_JSX+=("$FILE")
FILE_ARRAY_JSX+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -298,11 +298,11 @@ function BuildFileList() {
############################
# Get the TSX files #
############################
elif [ "$FILE_TYPE" == "tsx" ]; then
elif [ "${FILE_TYPE}" == "tsx" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_TSX+=("$FILE")
FILE_ARRAY_TSX+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -313,12 +313,12 @@ function BuildFileList() {
############################
# Get the TypeScript files #
############################
elif [ "$FILE_TYPE" == "ts" ]; then
elif [ "${FILE_TYPE}" == "ts" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_TYPESCRIPT_ES+=("$FILE")
FILE_ARRAY_TYPESCRIPT_STANDARD+=("$FILE")
FILE_ARRAY_TYPESCRIPT_ES+=("${FILE}")
FILE_ARRAY_TYPESCRIPT_STANDARD+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -326,11 +326,11 @@ function BuildFileList() {
########################
# Get the Golang files #
########################
elif [ "$FILE_TYPE" == "go" ]; then
elif [ "${FILE_TYPE}" == "go" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_GO+=("$FILE")
FILE_ARRAY_GO+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -338,11 +338,11 @@ function BuildFileList() {
###########################
# Get the Terraform files #
###########################
elif [ "$FILE_TYPE" == "tf" ]; then
elif [ "${FILE_TYPE}" == "tf" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_TERRAFORM+=("$FILE")
FILE_ARRAY_TERRAFORM+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -350,34 +350,34 @@ function BuildFileList() {
###########################
# Get the Powershell files #
###########################
elif [ "$FILE_TYPE" == "ps1" ]; then
elif [ "${FILE_TYPE}" == "ps1" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_POWERSHELL+=("$FILE")
elif [ "$FILE_TYPE" == "css" ]; then
FILE_ARRAY_POWERSHELL+=("${FILE}")
elif [ "${FILE_TYPE}" == "css" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_CSS+=("$FILE")
FILE_ARRAY_CSS+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [ "$FILE_TYPE" == "env" ]; then
elif [ "${FILE_TYPE}" == "env" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_ENV+=("$FILE")
FILE_ARRAY_ENV+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [ "$FILE_TYPE" == "kt" ] || [ "$FILE_TYPE" == "kts" ]; then
elif [ "${FILE_TYPE}" == "kt" ] || [ "${FILE_TYPE}" == "kts" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_KOTLIN+=("$FILE")
FILE_ARRAY_KOTLIN+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -385,47 +385,47 @@ function BuildFileList() {
############################
# Get the Protocol Buffers files #
############################
elif [ "$FILE_TYPE" == "dart" ]; then
elif [ "${FILE_TYPE}" == "dart" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_DART+=("$FILE")
FILE_ARRAY_DART+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [ "$FILE_TYPE" == "proto" ]; then
elif [ "${FILE_TYPE}" == "proto" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_PROTOBUF+=("$FILE")
FILE_ARRAY_PROTOBUF+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [ "$FILE" == "dockerfile" ] || [ "$FILE_TYPE" == "dockerfile" ]; then
elif [ "${FILE}" == "dockerfile" ] || [ "${FILE_TYPE}" == "dockerfile" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_DOCKER+=("$FILE")
FILE_ARRAY_DOCKER+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [ "$FILE_TYPE" == "clj" ] || [ "$FILE_TYPE" == "cljs" ] || [ "$FILE_TYPE" == "cljc" ] || [ "$FILE_TYPE" == "edn" ]; then
elif [ "${FILE_TYPE}" == "clj" ] || [ "${FILE_TYPE}" == "cljs" ] || [ "${FILE_TYPE}" == "cljc" ] || [ "${FILE_TYPE}" == "edn" ]; then
################################
# Append the file to the array #
################################
FILE_ARRAY_CLOJURE+=("$FILE")
FILE_ARRAY_CLOJURE+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [ "$FILE_TYPE" == "html" ]; then
elif [ "${FILE_TYPE}" == "html" ]; then
################################
# Append the file to the array #
##############################p##
FILE_ARRAY_HTML+=("$FILE")
FILE_ARRAY_HTML+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -434,12 +434,12 @@ function BuildFileList() {
##############################################
# Use file to see if we can parse what it is #
##############################################
GET_FILE_TYPE_CMD=$(file "$FILE" 2>&1)
GET_FILE_TYPE_CMD=$(file "${FILE}" 2>&1)
#################
# Check if bash #
#################
if [[ $GET_FILE_TYPE_CMD == *"Bourne-Again shell script"* ]]; then
if [[ ${GET_FILE_TYPE_CMD} == *"Bourne-Again shell script"* ]]; then
#######################
# It is a bash script #
#######################
@ -448,12 +448,12 @@ function BuildFileList() {
################################
# Append the file to the array #
################################
FILE_ARRAY_BASH+=("$FILE")
FILE_ARRAY_BASH+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
READ_ONLY_CHANGE_FLAG=1
elif [[ $GET_FILE_TYPE_CMD == *"Ruby script"* ]]; then
elif [[ ${GET_FILE_TYPE_CMD} == *"Ruby script"* ]]; then
#######################
# It is a Ruby script #
#######################
@ -462,7 +462,7 @@ function BuildFileList() {
################################
# Append the file to the array #
################################
FILE_ARRAY_RUBY+=("$FILE")
FILE_ARRAY_RUBY+=("${FILE}")
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -471,7 +471,7 @@ function BuildFileList() {
############################
# Extension was not found! #
############################
echo -e "${NC}${F[Y]} - WARN!${NC} Failed to get filetype for:[$FILE]!${NC}"
echo -e "${NC}${F[Y]} - WARN!${NC} Failed to get filetype for:[${FILE}]!${NC}"
##########################################################
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
##########################################################
@ -485,7 +485,7 @@ function BuildFileList() {
#########################################
# Need to switch back to branch of code #
#########################################
SWITCH2_CMD=$(git -C "$GITHUB_WORKSPACE" checkout --progress --force "$GITHUB_SHA" 2>&1)
SWITCH2_CMD=$(git -C "${GITHUB_WORKSPACE}" checkout --progress --force "${GITHUB_SHA}" 2>&1)
#######################
# Load the error code #
@ -495,10 +495,10 @@ function BuildFileList() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
echo "Failed to switch back to branch!"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SWITCH2_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${SWITCH2_CMD}]${NC}"
exit 1
fi

File diff suppressed because it is too large Load diff

View file

@ -20,7 +20,7 @@ function GetValidationInfo() {
###########################################
# Skip validation if were running locally #
###########################################
if [[ $RUN_LOCAL != "true" ]]; then
if [[ ${RUN_LOCAL} != "true" ]]; then
###############################
# Convert string to lowercase #
###############################
@ -28,9 +28,9 @@ function GetValidationInfo() {
######################################
# Validate we should check all files #
######################################
if [[ $VALIDATE_ALL_CODEBASE != "false" ]]; then
if [[ ${VALIDATE_ALL_CODEBASE} != "false" ]]; then
# Set to true
VALIDATE_ALL_CODEBASE="$DEFAULT_VALIDATE_ALL_CODEBASE"
VALIDATE_ALL_CODEBASE="${DEFAULT_VALIDATE_ALL_CODEBASE}"
echo "- Validating ALL files in code base..."
else
# Its false
@ -83,45 +83,45 @@ function GetValidationInfo() {
# Determine if any linters were explicitly set #
################################################
ANY_SET="false"
if [[ -n $VALIDATE_YAML || -n \
$VALIDATE_JSON || -n \
$VALIDATE_XML || -n \
$VALIDATE_MARKDOWN || -n \
$VALIDATE_BASH || -n \
$VALIDATE_PERL || -n \
$VALIDATE_RAKU || -n \
$VALIDATE_PHP || -n \
$VALIDATE_PYTHON || -n \
$VALIDATE_RUBY || -n \
$VALIDATE_COFFEE || -n \
$VALIDATE_ANSIBLE || -n \
$VALIDATE_JAVASCRIPT_ES || -n \
$VALIDATE_JAVASCRIPT_STANDARD || -n \
$VALIDATE_TYPESCRIPT_ES || -n \
$VALIDATE_TYPESCRIPT_STANDARD || -n \
$VALIDATE_DOCKER || -n \
$VALIDATE_GO || -n \
$VALIDATE_TERRAFORM || -n \
$VALIDATE_POWERSHELL || -n \
$VALIDATE_ARM || -n \
$VALIDATE_CSS || -n \
$VALIDATE_ENV || -n \
$VALIDATE_CLOJURE || -n \
$VALIDATE_PROTOBUF || -n \
$VALIDATE_OPENAPI || -n \
$VALIDATE_KOTLIN || -n \
$VALIDATE_DART || -n \
$VALIDATE_EDITORCONFIG || -n \
$VALIDATE_HTML ]]; then
if [[ -n ${VALIDATE_YAML} || -n \
${VALIDATE_JSON} || -n \
${VALIDATE_XML} || -n \
${VALIDATE_MARKDOWN} || -n \
${VALIDATE_BASH} || -n \
${VALIDATE_PERL} || -n \
${VALIDATE_RAKU} || -n \
${VALIDATE_PHP} || -n \
${VALIDATE_PYTHON} || -n \
${VALIDATE_RUBY} || -n \
${VALIDATE_COFFEE} || -n \
${VALIDATE_ANSIBLE} || -n \
${VALIDATE_JAVASCRIPT_ES} || -n \
${VALIDATE_JAVASCRIPT_STANDARD} || -n \
${VALIDATE_TYPESCRIPT_ES} || -n \
${VALIDATE_TYPESCRIPT_STANDARD} || -n \
${VALIDATE_DOCKER} || -n \
${VALIDATE_GO} || -n \
${VALIDATE_TERRAFORM} || -n \
${VALIDATE_POWERSHELL} || -n \
${VALIDATE_ARM} || -n \
${VALIDATE_CSS} || -n \
${VALIDATE_ENV} || -n \
${VALIDATE_CLOJURE} || -n \
${VALIDATE_PROTOBUF} || -n \
${VALIDATE_OPENAPI} || -n \
${VALIDATE_KOTLIN} || -n \
${VALIDATE_DART} || -n \
${VALIDATE_EDITORCONFIG} || -n \
${VALIDATE_HTML} ]]; then
ANY_SET="true"
fi
####################################
# Validate if we should check YAML #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_YAML ]]; then
if [[ -z ${VALIDATE_YAML} ]]; then
# YAML flag was not set - default to false
VALIDATE_YAML="false"
fi
@ -133,9 +133,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check JSON #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_JSON ]]; then
if [[ -z ${VALIDATE_JSON} ]]; then
# JSON flag was not set - default to false
VALIDATE_JSON="false"
fi
@ -147,9 +147,9 @@ function GetValidationInfo() {
###################################
# Validate if we should check XML #
###################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_XML ]]; then
if [[ -z ${VALIDATE_XML} ]]; then
# XML flag was not set - default to false
VALIDATE_XML="false"
fi
@ -161,9 +161,9 @@ function GetValidationInfo() {
########################################
# Validate if we should check MARKDOWN #
########################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_MARKDOWN ]]; then
if [[ -z ${VALIDATE_MARKDOWN} ]]; then
# MD flag was not set - default to false
VALIDATE_MARKDOWN="false"
fi
@ -175,9 +175,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check BASH #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_BASH ]]; then
if [[ -z ${VALIDATE_BASH} ]]; then
# BASH flag was not set - default to false
VALIDATE_BASH="false"
fi
@ -189,9 +189,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check PERL #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_PERL ]]; then
if [[ -z ${VALIDATE_PERL} ]]; then
# PERL flag was not set - default to false
VALIDATE_PERL="false"
fi
@ -203,9 +203,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check RAKU #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_RAKU ]]; then
if [[ -z ${VALIDATE_RAKU} ]]; then
# RAKU flag was not set - default to false
VALIDATE_RAKU="false"
fi
@ -217,9 +217,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check PHP #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_PHP ]]; then
if [[ -z ${VALIDATE_PHP} ]]; then
# PHP flag was not set - default to false
VALIDATE_PHP="false"
fi
@ -231,9 +231,9 @@ function GetValidationInfo() {
######################################
# Validate if we should check PYTHON #
######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_PYTHON ]]; then
if [[ -z ${VALIDATE_PYTHON} ]]; then
# PYTHON flag was not set - default to false
VALIDATE_PYTHON="false"
fi
@ -245,9 +245,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check RUBY #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_RUBY ]]; then
if [[ -z ${VALIDATE_RUBY} ]]; then
# RUBY flag was not set - default to false
VALIDATE_RUBY="false"
fi
@ -259,9 +259,9 @@ function GetValidationInfo() {
######################################
# Validate if we should check COFFEE #
######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_COFFEE ]]; then
if [[ -z ${VALIDATE_COFFEE} ]]; then
# COFFEE flag was not set - default to false
VALIDATE_COFFEE="false"
fi
@ -273,9 +273,9 @@ function GetValidationInfo() {
#######################################
# Validate if we should check ANSIBLE #
#######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_ANSIBLE ]]; then
if [[ -z ${VALIDATE_ANSIBLE} ]]; then
# ANSIBLE flag was not set - default to false
VALIDATE_ANSIBLE="false"
fi
@ -287,9 +287,9 @@ function GetValidationInfo() {
#############################################
# Validate if we should check JAVASCRIPT_ES #
#############################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_JAVASCRIPT_ES ]]; then
if [[ -z ${VALIDATE_JAVASCRIPT_ES} ]]; then
# JAVASCRIPT_ES flag was not set - default to false
VALIDATE_JAVASCRIPT_ES="false"
fi
@ -301,9 +301,9 @@ function GetValidationInfo() {
###################################################
# Validate if we should check JAVASCRIPT_STANDARD #
###################################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_JAVASCRIPT_STANDARD ]]; then
if [[ -z ${VALIDATE_JAVASCRIPT_STANDARD} ]]; then
# JAVASCRIPT_STANDARD flag was not set - default to false
VALIDATE_JAVASCRIPT_STANDARD="false"
fi
@ -315,9 +315,9 @@ function GetValidationInfo() {
#############################################
# Validate if we should check JSX #
#############################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_JSX ]]; then
if [[ -z ${VALIDATE_JSX} ]]; then
# JSX flag was not set - default to false
VALIDATE_JSX="false"
fi
@ -329,9 +329,9 @@ function GetValidationInfo() {
#############################################
# Validate if we should check TSX #
#############################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_TSX ]]; then
if [[ -z ${VALIDATE_TSX} ]]; then
# TSX flag was not set - default to false
VALIDATE_TSX="false"
fi
@ -343,9 +343,9 @@ function GetValidationInfo() {
#############################################
# Validate if we should check TYPESCRIPT_ES #
#############################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_TYPESCRIPT_ES ]]; then
if [[ -z ${VALIDATE_TYPESCRIPT_ES} ]]; then
# TYPESCRIPT_ES flag was not set - default to false
VALIDATE_TYPESCRIPT_ES="false"
fi
@ -357,9 +357,9 @@ function GetValidationInfo() {
###################################################
# Validate if we should check TYPESCRIPT_STANDARD #
###################################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_TYPESCRIPT_STANDARD ]]; then
if [[ -z ${VALIDATE_TYPESCRIPT_STANDARD} ]]; then
# TYPESCRIPT_STANDARD flag was not set - default to false
VALIDATE_TYPESCRIPT_STANDARD="false"
fi
@ -371,9 +371,9 @@ function GetValidationInfo() {
######################################
# Validate if we should check DOCKER #
######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_DOCKER ]]; then
if [[ -z ${VALIDATE_DOCKER} ]]; then
# DOCKER flag was not set - default to false
VALIDATE_DOCKER="false"
fi
@ -385,9 +385,9 @@ function GetValidationInfo() {
##################################
# Validate if we should check GO #
##################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_GO ]]; then
if [[ -z ${VALIDATE_GO} ]]; then
# GO flag was not set - default to false
VALIDATE_GO="false"
fi
@ -399,9 +399,9 @@ function GetValidationInfo() {
#########################################
# Validate if we should check TERRAFORM #
#########################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_TERRAFORM ]]; then
if [[ -z ${VALIDATE_TERRAFORM} ]]; then
# TERRAFORM flag was not set - default to false
VALIDATE_TERRAFORM="false"
fi
@ -413,9 +413,9 @@ function GetValidationInfo() {
#########################################
# Validate if we should check POWERSHELL #
#########################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_POWERSHELL ]]; then
if [[ -z ${VALIDATE_POWERSHELL} ]]; then
# POWERSHELL flag was not set - default to false
VALIDATE_POWERSHELL="false"
fi
@ -427,9 +427,9 @@ function GetValidationInfo() {
###################################
# Validate if we should check ARM #
###################################
if [[ "$ANY_SET" == "true" ]]; then
if [[ "${ANY_SET}" == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z "$VALIDATE_ARM" ]]; then
if [[ -z "${VALIDATE_ARM}" ]]; then
# ARM flag was not set - default to false
VALIDATE_ARM="false"
fi
@ -441,9 +441,9 @@ function GetValidationInfo() {
###################################
# Validate if we should check CSS #
###################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_CSS ]]; then
if [[ -z ${VALIDATE_CSS} ]]; then
# CSS flag was not set - default to false
VALIDATE_CSS="false"
fi
@ -455,9 +455,9 @@ function GetValidationInfo() {
###################################
# Validate if we should check ENV #
###################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_ENV ]]; then
if [[ -z ${VALIDATE_ENV} ]]; then
# ENV flag was not set - default to false
VALIDATE_ENV="false"
fi
@ -469,9 +469,9 @@ function GetValidationInfo() {
######################################
# Validate if we should check KOTLIN #
######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_KOTLIN ]]; then
if [[ -z ${VALIDATE_KOTLIN} ]]; then
# ENV flag was not set - default to false
VALIDATE_KOTLIN="false"
fi
@ -483,9 +483,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check DART #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_DART ]]; then
if [[ -z ${VALIDATE_DART} ]]; then
# ENV flag was not set - default to false
VALIDATE_DART="false"
fi
@ -497,9 +497,9 @@ function GetValidationInfo() {
#######################################
# Validate if we should check OPENAPI #
#######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_OPENAPI ]]; then
if [[ -z ${VALIDATE_OPENAPI} ]]; then
# OPENAPI flag was not set - default to false
VALIDATE_OPENAPI="false"
fi
@ -511,9 +511,9 @@ function GetValidationInfo() {
#######################################
# Validate if we should check PROTOBUF #
#######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_PROTOBUF ]]; then
if [[ -z ${VALIDATE_PROTOBUF} ]]; then
# PROTOBUF flag was not set - default to false
VALIDATE_PROTOBUF="false"
fi
@ -525,9 +525,9 @@ function GetValidationInfo() {
#######################################
# Validate if we should check Clojure #
#######################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_CLOJURE ]]; then
if [[ -z ${VALIDATE_CLOJURE} ]]; then
# Clojure flag was not set - default to false
VALIDATE_CLOJURE="false"
fi
@ -539,16 +539,16 @@ function GetValidationInfo() {
############################################
# Validate if we should check editorconfig #
############################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_EDITORCONFIG ]]; then
if [[ -z ${VALIDATE_EDITORCONFIG} ]]; then
# EDITORCONFIG flag was not set - default to false
VALIDATE_EDITORCONFIG="false"
fi
else
# No linter flags were set
# special case checking for .editorconfig
if [ -f "$GITHUB_WORKSPACE/.editorconfig" ]; then
if [ -f "${GITHUB_WORKSPACE}/.editorconfig" ]; then
VALIDATE_EDITORCONFIG="true"
fi
fi
@ -556,9 +556,9 @@ function GetValidationInfo() {
####################################
# Validate if we should check HTML #
####################################
if [[ $ANY_SET == "true" ]]; then
if [[ ${ANY_SET} == "true" ]]; then
# Some linter flags were set - only run those set to true
if [[ -z $VALIDATE_HTML ]]; then
if [[ -z ${VALIDATE_HTML} ]]; then
# HTML flag was not set - default to false
VALIDATE_HTML="false"
fi
@ -570,152 +570,152 @@ function GetValidationInfo() {
#######################################
# Print which linters we are enabling #
#######################################
if [[ $VALIDATE_YAML == "true" ]]; then
if [[ ${VALIDATE_YAML} == "true" ]]; then
PRINT_ARRAY+=("- Validating [YAML] files in code base...")
else
PRINT_ARRAY+=("- Excluding [YAML] files in code base...")
fi
if [[ $VALIDATE_JSON == "true" ]]; then
if [[ ${VALIDATE_JSON} == "true" ]]; then
PRINT_ARRAY+=("- Validating [JSON] files in code base...")
else
PRINT_ARRAY+=("- Excluding [JSON] files in code base...")
fi
if [[ $VALIDATE_XML == "true" ]]; then
if [[ ${VALIDATE_XML} == "true" ]]; then
PRINT_ARRAY+=("- Validating [XML] files in code base...")
else
PRINT_ARRAY+=("- Excluding [XML] files in code base...")
fi
if [[ $VALIDATE_MARKDOWN == "true" ]]; then
if [[ ${VALIDATE_MARKDOWN} == "true" ]]; then
PRINT_ARRAY+=("- Validating [MARKDOWN] files in code base...")
else
PRINT_ARRAY+=("- Excluding [MARKDOWN] files in code base...")
fi
if [[ $VALIDATE_BASH == "true" ]]; then
if [[ ${VALIDATE_BASH} == "true" ]]; then
PRINT_ARRAY+=("- Validating [BASH] files in code base...")
else
PRINT_ARRAY+=("- Excluding [BASH] files in code base...")
fi
if [[ $VALIDATE_PERL == "true" ]]; then
if [[ ${VALIDATE_PERL} == "true" ]]; then
PRINT_ARRAY+=("- Validating [PERL] files in code base...")
else
PRINT_ARRAY+=("- Excluding [PERL] files in code base...")
fi
if [[ $VALIDATE_RAKU == "true" ]]; then
if [[ ${VALIDATE_RAKU} == "true" ]]; then
PRINT_ARRAY+=("- Validating [RAKU] files in code base...")
else
PRINT_ARRAY+=("- Excluding [RAKU] files in code base...")
fi
if [[ $VALIDATE_PHP == "true" ]]; then
if [[ ${VALIDATE_PHP} == "true" ]]; then
PRINT_ARRAY+=("- Validating [PHP] files in code base...")
else
PRINT_ARRAY+=("- Excluding [PHP] files in code base...")
fi
if [[ $VALIDATE_PYTHON == "true" ]]; then
if [[ ${VALIDATE_PYTHON} == "true" ]]; then
PRINT_ARRAY+=("- Validating [PYTHON] files in code base...")
else
PRINT_ARRAY+=("- Excluding [PYTHON] files in code base...")
fi
if [[ $VALIDATE_RUBY == "true" ]]; then
if [[ ${VALIDATE_RUBY} == "true" ]]; then
PRINT_ARRAY+=("- Validating [RUBY] files in code base...")
else
PRINT_ARRAY+=("- Excluding [RUBY] files in code base...")
fi
if [[ $VALIDATE_COFFEE == "true" ]]; then
if [[ ${VALIDATE_COFFEE} == "true" ]]; then
PRINT_ARRAY+=("- Validating [COFFEE] files in code base...")
else
PRINT_ARRAY+=("- Excluding [COFFEE] files in code base...")
fi
if [[ $VALIDATE_ANSIBLE == "true" ]]; then
if [[ ${VALIDATE_ANSIBLE} == "true" ]]; then
PRINT_ARRAY+=("- Validating [ANSIBLE] files in code base...")
else
PRINT_ARRAY+=("- Excluding [ANSIBLE] files in code base...")
fi
if [[ $VALIDATE_JAVASCRIPT_ES == "true" ]]; then
if [[ ${VALIDATE_JAVASCRIPT_ES} == "true" ]]; then
PRINT_ARRAY+=("- Validating [JAVASCRIPT(eslint)] files in code base...")
else
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(eslint)] files in code base...")
fi
if [[ $VALIDATE_JAVASCRIPT_STANDARD == "true" ]]; then
if [[ ${VALIDATE_JAVASCRIPT_STANDARD} == "true" ]]; then
PRINT_ARRAY+=("- Validating [JAVASCRIPT(standard)] files in code base...")
else
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(standard)] files in code base...")
fi
if [[ $VALIDATE_TYPESCRIPT_ES == "true" ]]; then
if [[ ${VALIDATE_TYPESCRIPT_ES} == "true" ]]; then
PRINT_ARRAY+=("- Validating [TYPESCRIPT(eslint)] files in code base...")
else
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(eslint)] files in code base...")
fi
if [[ $VALIDATE_TYPESCRIPT_STANDARD == "true" ]]; then
if [[ ${VALIDATE_TYPESCRIPT_STANDARD} == "true" ]]; then
PRINT_ARRAY+=("- Validating [TYPESCRIPT(standard)] files in code base...")
else
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(standard)] files in code base...")
fi
if [[ $VALIDATE_DOCKER == "true" ]]; then
if [[ ${VALIDATE_DOCKER} == "true" ]]; then
PRINT_ARRAY+=("- Validating [DOCKER] files in code base...")
else
PRINT_ARRAY+=("- Excluding [DOCKER] files in code base...")
fi
if [[ $VALIDATE_GO == "true" ]]; then
if [[ ${VALIDATE_GO} == "true" ]]; then
PRINT_ARRAY+=("- Validating [GOLANG] files in code base...")
else
PRINT_ARRAY+=("- Excluding [GOLANG] files in code base...")
fi
if [[ $VALIDATE_TERRAFORM == "true" ]]; then
if [[ ${VALIDATE_TERRAFORM} == "true" ]]; then
PRINT_ARRAY+=("- Validating [TERRAFORM] files in code base...")
else
PRINT_ARRAY+=("- Excluding [TERRAFORM] files in code base...")
fi
if [[ $VALIDATE_POWERSHELL == "true" ]]; then
if [[ ${VALIDATE_POWERSHELL} == "true" ]]; then
PRINT_ARRAY+=("- Validating [POWERSHELL] files in code base...")
else
PRINT_ARRAY+=("- Excluding [POWERSHELL] files in code base...")
fi
if [[ $VALIDATE_ARM == "true" ]]; then
if [[ ${VALIDATE_ARM} == "true" ]]; then
PRINT_ARRAY+=("- Validating [ARM] files in code base...")
else
PRINT_ARRAY+=("- Excluding [ARM] files in code base...")
fi
if [[ $VALIDATE_CSS == "true" ]]; then
if [[ ${VALIDATE_CSS} == "true" ]]; then
PRINT_ARRAY+=("- Validating [CSS] files in code base...")
else
PRINT_ARRAY+=("- Excluding [CSS] files in code base...")
fi
if [[ $VALIDATE_CLOJURE == "true" ]]; then
if [[ ${VALIDATE_CLOJURE} == "true" ]]; then
PRINT_ARRAY+=("- Validating [CLOJURE] files in code base...")
else
PRINT_ARRAY+=("- Excluding [CLOJURE] files in code base...")
fi
if [[ $VALIDATE_ENV == "true" ]]; then
if [[ ${VALIDATE_ENV} == "true" ]]; then
PRINT_ARRAY+=("- Validating [ENV] files in code base...")
else
PRINT_ARRAY+=("- Excluding [ENV] files in code base...")
fi
if [[ $VALIDATE_KOTLIN == "true" ]]; then
if [[ ${VALIDATE_KOTLIN} == "true" ]]; then
PRINT_ARRAY+=("- Validating [KOTLIN] files in code base...")
else
PRINT_ARRAY+=("- Excluding [KOTLIN] files in code base...")
fi
if [[ $VALIDATE_OPENAPI == "true" ]]; then
if [[ ${VALIDATE_OPENAPI} == "true" ]]; then
PRINT_ARRAY+=("- Validating [OPENAPI] files in code base...")
else
PRINT_ARRAY+=("- Excluding [OPENAPI] files in code base...")
fi
if [[ $VALIDATE_PROTOBUF == "true" ]]; then
if [[ ${VALIDATE_PROTOBUF} == "true" ]]; then
PRINT_ARRAY+=("- Validating [PROTOBUF] files in code base...")
else
PRINT_ARRAY+=("- Excluding [PROTOBUF] files in code base...")
fi
if [[ $VALIDATE_DART == "true" ]]; then
if [[ ${VALIDATE_DART} == "true" ]]; then
PRINT_ARRAY+=("- Validating [DART] files in code base...")
else
PRINT_ARRAY+=("- Excluding [DART] files in code base...")
fi
if [[ $VALIDATE_EDITORCONFIG == "true" ]]; then
if [[ ${VALIDATE_EDITORCONFIG} == "true" ]]; then
PRINT_ARRAY+=("- Validating [EDITORCONFIG] files in code base...")
else
PRINT_ARRAY+=("- Excluding [EDITORCONFIG] files in code base...")
fi
if [[ $VALIDATE_HTML == "true" ]]; then
if [[ ${VALIDATE_HTML} == "true" ]]; then
PRINT_ARRAY+=("- Validating [HTML] files in code base...")
else
PRINT_ARRAY+=("- Excluding [HTML] files in code base...")
@ -724,9 +724,9 @@ function GetValidationInfo() {
##############################
# Validate Ansible Directory #
##############################
if [ -z "$ANSIBLE_DIRECTORY" ]; then
if [ -z "${ANSIBLE_DIRECTORY}" ]; then
# No Value, need to default
ANSIBLE_DIRECTORY="$DEFAULT_ANSIBLE_DIRECTORY"
ANSIBLE_DIRECTORY="${DEFAULT_ANSIBLE_DIRECTORY}"
else
# Check if first char is '/'
if [[ ${ANSIBLE_DIRECTORY:0:1} == "/" ]]; then
@ -734,19 +734,19 @@ function GetValidationInfo() {
ANSIBLE_DIRECTORY="${ANSIBLE_DIRECTORY:1}"
fi
# Need to give it full path
TEMP_ANSIBLE_DIRECTORY="$GITHUB_WORKSPACE/$ANSIBLE_DIRECTORY"
TEMP_ANSIBLE_DIRECTORY="${GITHUB_WORKSPACE}/${ANSIBLE_DIRECTORY}"
# Set the value
ANSIBLE_DIRECTORY="$TEMP_ANSIBLE_DIRECTORY"
ANSIBLE_DIRECTORY="${TEMP_ANSIBLE_DIRECTORY}"
fi
###############################
# Get the disable errors flag #
###############################
if [ -z "$DISABLE_ERRORS" ]; then
if [ -z "${DISABLE_ERRORS}" ]; then
##################################
# No flag passed, set to default #
##################################
DISABLE_ERRORS="$DEFAULT_DISABLE_ERRORS"
DISABLE_ERRORS="${DEFAULT_DISABLE_ERRORS}"
fi
###############################
@ -757,18 +757,18 @@ function GetValidationInfo() {
############################
# Set to false if not true #
############################
if [ "$DISABLE_ERRORS" != "true" ]; then
if [ "${DISABLE_ERRORS}" != "true" ]; then
DISABLE_ERRORS="false"
fi
############################
# Get the run verbose flag #
############################
if [ -z "$ACTIONS_RUNNER_DEBUG" ]; then
if [ -z "${ACTIONS_RUNNER_DEBUG}" ]; then
##################################
# No flag passed, set to default #
##################################
ACTIONS_RUNNER_DEBUG="$DEFAULT_ACTIONS_RUNNER_DEBUG"
ACTIONS_RUNNER_DEBUG="${DEFAULT_ACTIONS_RUNNER_DEBUG}"
fi
###############################
@ -779,25 +779,25 @@ function GetValidationInfo() {
############################
# Set to true if not false #
############################
if [ "$ACTIONS_RUNNER_DEBUG" != "false" ]; then
if [ "${ACTIONS_RUNNER_DEBUG}" != "false" ]; then
ACTIONS_RUNNER_DEBUG="true"
fi
###################
# Debug on runner #
###################
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
if [[ ${ACTIONS_RUNNER_DEBUG} == "true" ]]; then
###########################
# Print the validate info #
###########################
for LINE in "${PRINT_ARRAY[@]}"; do
echo "$LINE"
echo "${LINE}"
done
echo "--- DEBUG INFO ---"
echo "---------------------------------------------"
RUNNER=$(whoami)
echo "Runner:[$RUNNER]"
echo "Runner:[${RUNNER}]"
echo "ENV:"
printenv
echo "---------------------------------------------"

View file

@ -13,11 +13,11 @@ function LintCodebase() {
####################
# Pull in the vars #
####################
FILE_TYPE="$1" && shift # Pull the variable and remove from array path (Example: JSON)
LINTER_NAME="$1" && shift # Pull the variable and remove from array path (Example: jsonlint)
LINTER_COMMAND="$1" && shift # Pull the variable and remove from array path (Example: jsonlint -c ConfigFile /path/to/file)
FILE_EXTENSIONS="$1" && shift # Pull the variable and remove from array path (Example: *.json)
FILE_ARRAY=("$@") # Array of files to validate (Example: $FILE_ARRAY_JSON)
FILE_TYPE="${1}" && shift # Pull the variable and remove from array path (Example: JSON)
LINTER_NAME="${1}" && shift # Pull the variable and remove from array path (Example: jsonlint)
LINTER_COMMAND="${1}" && shift # Pull the variable and remove from array path (Example: jsonlint -c ConfigFile /path/to/file)
FILE_EXTENSIONS="${1}" && shift # Pull the variable and remove from array path (Example: *.json)
FILE_ARRAY=("$@") # Array of files to validate (Example: ${FILE_ARRAY_JSON})
######################
# Create Print Array #
@ -30,14 +30,14 @@ function LintCodebase() {
PRINT_ARRAY+=("")
PRINT_ARRAY+=("----------------------------------------------")
PRINT_ARRAY+=("----------------------------------------------")
PRINT_ARRAY+=("Linting [$FILE_TYPE] files...")
PRINT_ARRAY+=("Linting [${FILE_TYPE}] files...")
PRINT_ARRAY+=("----------------------------------------------")
PRINT_ARRAY+=("----------------------------------------------")
#####################################
# Validate we have linter installed #
#####################################
VALIDATE_INSTALL_CMD=$(command -v "$LINTER_NAME" 2>&1)
VALIDATE_INSTALL_CMD=$(command -v "${LINTER_NAME}" 2>&1)
#######################
# Load the error code #
@ -47,15 +47,15 @@ function LintCodebase() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Failed
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [$LINTER_NAME] in system!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [${LINTER_NAME}] in system!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${VALIDATE_INSTALL_CMD}]${NC}"
exit 1
else
# Success
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
echo -e "${NC}${F[B]}Successfully found binary for ${F[W]}[$LINTER_NAME]${F[B]} in system location: ${F[W]}[$VALIDATE_INSTALL_CMD]${NC}"
if [[ ${ACTIONS_RUNNER_DEBUG} == "true" ]]; then
echo -e "${NC}${F[B]}Successfully found binary for ${F[W]}[${LINTER_NAME}]${F[B]} in system location: ${F[W]}[${VALIDATE_INSTALL_CMD}]${NC}"
fi
fi
@ -72,10 +72,10 @@ function LintCodebase() {
############################################################
# Check to see if we need to go through array or all files #
############################################################
if [ ${#FILE_ARRAY[@]} -eq 0 ] && [ "$VALIDATE_ALL_CODEBASE" == "false" ]; then
if [ ${#FILE_ARRAY[@]} -eq 0 ] && [ "${VALIDATE_ALL_CODEBASE}" == "false" ]; then
# No files found in commit and user has asked to not validate code base
SKIP_FLAG=1
# echo " - No files found in changeset to lint for language:[$FILE_TYPE]"
# echo " - No files found in changeset to lint for language:[${FILE_TYPE}]"
elif [ ${#FILE_ARRAY[@]} -ne 0 ]; then
# We have files added to array of files to check
LIST_FILES=("${FILE_ARRAY[@]}") # Copy the array into list
@ -88,12 +88,12 @@ function LintCodebase() {
#################################
# Get list of all files to lint #
#################################
mapfile -t LIST_FILES < <(find "$GITHUB_WORKSPACE" -type f -regex "$FILE_EXTENSIONS" 2>&1)
mapfile -t LIST_FILES < <(find "${GITHUB_WORKSPACE}" -type f -regex "${FILE_EXTENSIONS}" 2>&1)
###########################
# Set IFS back to default #
###########################
IFS="$DEFAULT_IFS"
IFS="${DEFAULT_IFS}"
############################################################
# Set it back to empty if loaded with blanks from scanning #
@ -113,7 +113,7 @@ function LintCodebase() {
###############################
# Check if any data was found #
###############################
if [ $SKIP_FLAG -eq 0 ]; then
if [ ${SKIP_FLAG} -eq 0 ]; then
######################
# Print Header array #
######################
@ -121,7 +121,7 @@ function LintCodebase() {
#########################
# Print the header info #
#########################
echo "$LINE"
echo "${LINE}"
done
########################################
@ -141,18 +141,18 @@ function LintCodebase() {
#####################
# Get the file name #
#####################
FILE_NAME=$(basename "$FILE" 2>&1)
FILE_NAME=$(basename "${FILE}" 2>&1)
#####################################################
# Make sure we dont lint node modules or test cases #
#####################################################
if [[ $FILE == *"node_modules"* ]]; then
if [[ ${FILE} == *"node_modules"* ]]; then
# This is a node modules file
continue
elif [[ $FILE == *"$TEST_CASE_FOLDER"* ]]; then
elif [[ ${FILE} == *"${TEST_CASE_FOLDER}"* ]]; then
# This is the test cases, we should always skip
continue
elif [[ $FILE == *".git"* ]]; then
elif [[ ${FILE} == *".git"* ]]; then
# This is likely the .git folder and shouldnt be parsed
continue
fi
@ -166,12 +166,12 @@ function LintCodebase() {
# File print #
##############
echo "---------------------------"
echo "File:[$FILE]"
echo "File:[${FILE}]"
#################################
# Add the language to the array #
#################################
LINTED_LANGUAGES_ARRAY+=("$FILE_TYPE")
LINTED_LANGUAGES_ARRAY+=("${FILE_TYPE}")
####################
# Set the base Var #
@ -183,14 +183,14 @@ function LintCodebase() {
# - PowerShell (PSScriptAnalyzer) #
# - ARM (arm-ttk) #
####################################
if [[ $FILE_TYPE == "POWERSHELL" ]] || [[ $FILE_TYPE == "ARM" ]]; then
if [[ ${FILE_TYPE} == "POWERSHELL" ]] || [[ ${FILE_TYPE} == "ARM" ]]; then
################################
# Lint the file with the rules #
################################
# Need to run PowerShell commands using pwsh -c, also exit with exit code from inner subshell
LINT_CMD=$(
cd "$GITHUB_WORKSPACE" || exit
pwsh -NoProfile -NoLogo -Command "$LINTER_COMMAND $FILE; if (\$Error.Count) { exit 1 }"
cd "${GITHUB_WORKSPACE}" || exit
pwsh -NoProfile -NoLogo -Command "${LINTER_COMMAND} ${FILE}; if (\${Error}.Count) { exit 1 }"
exit $? 2>&1
)
else
@ -198,8 +198,8 @@ function LintCodebase() {
# Lint the file with the rules #
################################
LINT_CMD=$(
cd "$GITHUB_WORKSPACE" || exit
$LINTER_COMMAND "$FILE" 2>&1
cd "${GITHUB_WORKSPACE}" || exit
${LINTER_COMMAND} "${FILE}" 2>&1
)
fi
@ -211,27 +211,27 @@ function LintCodebase() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
#########
# Error #
#########
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LINT_CMD}]${NC}"
# Increment the error count
(("ERRORS_FOUND_$FILE_TYPE++"))
(("ERRORS_FOUND_${FILE_TYPE}++"))
#######################################################
# Store the linting as a temporary file in TAP format #
#######################################################
if IsTAP ; then
NotOkTap "${INDEX}" "${FILE}" "${TMPFILE}"
AddDetailedMessageIfEnabled "$LINT_CMD" "${TMPFILE}"
AddDetailedMessageIfEnabled "${LINT_CMD}" "${TMPFILE}"
fi
else
###########
# Success #
###########
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} was linted with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
echo -e "${NC}${F[B]} - File:${F[W]}[${FILE_NAME}]${F[B]} was linted with ${F[W]}[${LINTER_NAME}]${F[B]} successfully${NC}"
#######################################################
# Store the linting as a temporary file in TAP format #
@ -257,11 +257,11 @@ function TestCodebase() {
####################
# Pull in the vars #
####################
FILE_TYPE="$1" # Pull the variable and remove from array path (Example: JSON)
LINTER_NAME="$2" # Pull the variable and remove from array path (Example: jsonlint)
LINTER_COMMAND="$3" # Pull the variable and remove from array path (Example: jsonlint -c ConfigFile /path/to/file)
FILE_EXTENSIONS="$4" # Pull the variable and remove from array path (Example: *.json)
INDVIDUAL_TEST_FOLDER="$5" # Folder for specific tests
FILE_TYPE="${1}" # Pull the variable and remove from array path (Example: JSON)
LINTER_NAME="${2}" # Pull the variable and remove from array path (Example: jsonlint)
LINTER_COMMAND="${3}" # Pull the variable and remove from array path (Example: jsonlint -c ConfigFile /path/to/file)
FILE_EXTENSIONS="${4}" # Pull the variable and remove from array path (Example: *.json)
INDVIDUAL_TEST_FOLDER="${5}" # Folder for specific tests
TESTS_RAN=0 # Incremented when tests are ran, this will help find failed finds
################
@ -270,7 +270,7 @@ function TestCodebase() {
echo ""
echo "----------------------------------------------"
echo "----------------------------------------------"
echo "Testing Codebase [$FILE_TYPE] files..."
echo "Testing Codebase [${FILE_TYPE}] files..."
echo "----------------------------------------------"
echo "----------------------------------------------"
echo ""
@ -278,7 +278,7 @@ function TestCodebase() {
#####################################
# Validate we have linter installed #
#####################################
VALIDATE_INSTALL_CMD=$(command -v "$LINTER_NAME" 2>&1)
VALIDATE_INSTALL_CMD=$(command -v "${LINTER_NAME}" 2>&1)
#######################
# Load the error code #
@ -288,14 +288,14 @@ function TestCodebase() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Failed
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [$LINTER_NAME] in system!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [${LINTER_NAME}] in system!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${VALIDATE_INSTALL_CMD}]${NC}"
exit 1
else
# Success
echo -e "${NC}${F[B]}Successfully found binary for ${F[W]}[$LINTER_NAME]${F[B]} in system location: ${F[W]}[$VALIDATE_INSTALL_CMD]${NC}"
echo -e "${NC}${F[B]}Successfully found binary for ${F[W]}[${LINTER_NAME}]${F[B]} in system location: ${F[W]}[${VALIDATE_INSTALL_CMD}]${NC}"
fi
##########################
@ -306,7 +306,7 @@ function TestCodebase() {
#################################
# Get list of all files to lint #
#################################
mapfile -t LIST_FILES < <(find "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/$INDVIDUAL_TEST_FOLDER" -type f -regex "$FILE_EXTENSIONS" ! -path "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/ansible/ghe-initialize/*" | sort 2>&1)
mapfile -t LIST_FILES < <(find "${GITHUB_WORKSPACE}/${TEST_CASE_FOLDER}/${INDVIDUAL_TEST_FOLDER}" -type f -regex "${FILE_EXTENSIONS}" ! -path "${GITHUB_WORKSPACE}/${TEST_CASE_FOLDER}/ansible/ghe-initialize/*" | sort 2>&1)
########################################
# Prepare context if TAP output format #
@ -324,18 +324,18 @@ function TestCodebase() {
#####################
# Get the file name #
#####################
FILE_NAME=$(basename "$FILE" 2>&1)
FILE_NAME=$(basename "${FILE}" 2>&1)
############################
# Get the file pass status #
############################
# Example: markdown_good_1.md -> good
FILE_STATUS=$(echo "$FILE_NAME" | cut -f2 -d'_')
FILE_STATUS=$(echo "${FILE_NAME}" | cut -f2 -d'_')
#########################################################
# If not found, assume it should be linted successfully #
#########################################################
if [ -z "$FILE_STATUS" ] || [[ $FILE == *"README"* ]]; then
if [ -z "${FILE_STATUS}" ] || [[ ${FILE} == *"README"* ]]; then
##################################
# Set to good for proper linting #
##################################
@ -346,7 +346,7 @@ function TestCodebase() {
# File print #
##############
echo "---------------------------"
echo "File:[$FILE]"
echo "File:[${FILE}]"
########################
# Set the lint command #
@ -356,8 +356,8 @@ function TestCodebase() {
#######################################
# Check if docker and get folder name #
#######################################
if [[ $FILE_TYPE == "DOCKER" ]]; then
if [[ $FILE == *"good"* ]]; then
if [[ ${FILE_TYPE} == "DOCKER" ]]; then
if [[ ${FILE} == *"good"* ]]; then
#############
# Good file #
#############
@ -373,11 +373,11 @@ function TestCodebase() {
#####################
# Check for ansible #
#####################
if [[ $FILE_TYPE == "ANSIBLE" ]]; then
if [[ ${FILE_TYPE} == "ANSIBLE" ]]; then
########################################
# Make sure we dont lint certain files #
########################################
if [[ $FILE == *"vault.yml"* ]] || [[ $FILE == *"galaxy.yml"* ]]; then
if [[ ${FILE} == *"vault.yml"* ]] || [[ ${FILE} == *"galaxy.yml"* ]]; then
# This is a file we dont look at
continue
fi
@ -386,17 +386,17 @@ function TestCodebase() {
# Lint the file with the rules #
################################
LINT_CMD=$(
cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/$INDVIDUAL_TEST_FOLDER" || exit
$LINTER_COMMAND "$FILE" 2>&1
cd "${GITHUB_WORKSPACE}/${TEST_CASE_FOLDER}/${INDVIDUAL_TEST_FOLDER}" || exit
${LINTER_COMMAND} "${FILE}" 2>&1
)
elif [[ $FILE_TYPE == "POWERSHELL" ]] || [[ $FILE_TYPE == "ARM" ]]; then
elif [[ ${FILE_TYPE} == "POWERSHELL" ]] || [[ ${FILE_TYPE} == "ARM" ]]; then
################################
# Lint the file with the rules #
################################
# Need to run PowerShell commands using pwsh -c, also exit with exit code from inner subshell
LINT_CMD=$(
cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER" || exit
pwsh -NoProfile -NoLogo -Command "$LINTER_COMMAND $FILE; if (\$Error.Count) { exit 1 }"
cd "${GITHUB_WORKSPACE}/${TEST_CASE_FOLDER}" || exit
pwsh -NoProfile -NoLogo -Command "${LINTER_COMMAND} ${FILE}; if (\${Error}.Count) { exit 1 }"
exit $? 2>&1
)
else
@ -404,8 +404,8 @@ function TestCodebase() {
# Lint the file with the rules #
################################
LINT_CMD=$(
cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER" || exit
$LINTER_COMMAND "$FILE" 2>&1
cd "${GITHUB_WORKSPACE}/${TEST_CASE_FOLDER}" || exit
${LINTER_COMMAND} "${FILE}" 2>&1
)
fi
@ -422,24 +422,24 @@ function TestCodebase() {
########################################
# Check for if it was supposed to pass #
########################################
if [[ $FILE_STATUS == "good" ]]; then
if [[ ${FILE_STATUS} == "good" ]]; then
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
#########
# Error #
#########
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[$LINTER_COMMAND $FILE]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LINT_CMD}]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[${LINTER_COMMAND} ${FILE}]${NC}"
# Increment the error count
(("ERRORS_FOUND_$FILE_TYPE++"))
(("ERRORS_FOUND_${FILE_TYPE}++"))
else
###########
# Success #
###########
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} was linted with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
echo -e "${NC}${F[B]} - File:${F[W]}[${FILE_NAME}]${F[B]} was linted with ${F[W]}[${LINTER_NAME}]${F[B]} successfully${NC}"
fi
#######################################################
# Store the linting as a temporary file in TAP format #
@ -454,28 +454,28 @@ function TestCodebase() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -eq 0 ]; then
if [ ${ERROR_CODE} -eq 0 ]; then
#########
# Error #
#########
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} This file should have failed test case!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[$LINTER_COMMAND $FILE]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LINT_CMD}]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[${LINTER_COMMAND} ${FILE}]${NC}"
# Increment the error count
(("ERRORS_FOUND_$FILE_TYPE++"))
(("ERRORS_FOUND_${FILE_TYPE}++"))
else
###########
# Success #
###########
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} failed test case with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
echo -e "${NC}${F[B]} - File:${F[W]}[${FILE_NAME}]${F[B]} failed test case with ${F[W]}[${LINTER_NAME}]${F[B]} successfully${NC}"
fi
#######################################################
# Store the linting as a temporary file in TAP format #
#######################################################
if IsTAP ; then
NotOkTap "${TESTS_RAN}" "${FILE_NAME}" "${TMPFILE}"
AddDetailedMessageIfEnabled "$LINT_CMD" "${TMPFILE}"
AddDetailedMessageIfEnabled "${LINT_CMD}" "${TMPFILE}"
fi
fi
done
@ -490,24 +490,24 @@ function TestCodebase() {
########################################################################
# If expected TAP report exists then compare with the generated report #
########################################################################
EXPECTED_FILE="$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/$INDVIDUAL_TEST_FOLDER/reports/expected-${FILE_TYPE}.tap"
if [ -e "$EXPECTED_FILE" ] ; then
EXPECTED_FILE="${GITHUB_WORKSPACE}/${TEST_CASE_FOLDER}/${INDVIDUAL_TEST_FOLDER}/reports/expected-${FILE_TYPE}.tap"
if [ -e "${EXPECTED_FILE}" ] ; then
TMPFILE=$(mktemp -q "/tmp/diff-${FILE_TYPE}.XXXXXX")
## Ignore white spaces, case sensitive
if ! diff -a -w -i "${EXPECTED_FILE}" "${REPORT_OUTPUT_FILE}" > "${TMPFILE}" 2>&1; then
#############################################
# We failed to compare the reporting output #
#############################################
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to assert TAP output:[$LINTER_NAME]${NC}"!
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to assert TAP output:[${LINTER_NAME}]${NC}"!
echo "Please validate the asserts!"
cat "${TMPFILE}"
exit 1
else
# Success
echo -e "${NC}${F[B]}Successfully validation in the expected TAP format for ${F[W]}[$LINTER_NAME]${NC}"
echo -e "${NC}${F[B]}Successfully validation in the expected TAP format for ${F[W]}[${LINTER_NAME}]${NC}"
fi
else
echo -e "${NC}${F[Y]}WARN!${NC} No TAP expected file found at:[$EXPECTED_FILE]${NC}"
echo -e "${NC}${F[Y]}WARN!${NC} No TAP expected file found at:[${EXPECTED_FILE}]${NC}"
echo "skipping report assertions"
#####################################
# Append the file type to the array #
@ -519,11 +519,11 @@ function TestCodebase() {
##############################
# Validate we ran some tests #
##############################
if [ "$TESTS_RAN" -eq 0 ]; then
if [ "${TESTS_RAN}" -eq 0 ]; then
#################################################
# We failed to find files and no tests were ran #
#################################################
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find any tests ran for the Linter:[$LINTER_NAME]${NC}"!
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find any tests ran for the Linter:[${LINTER_NAME}]${NC}"!
echo "Please validate logic or that tests exist!"
exit 1
fi
@ -552,37 +552,37 @@ function RunTestCases() {
# Test case languages #
#######################
# TestCodebase "Language" "Linter" "Linter-command" "Regex to find files" "Test Folder"
TestCodebase "ANSIBLE" "ansible-lint" "ansible-lint -v -c $ANSIBLE_LINTER_RULES" ".*\.\(yml\|yaml\)\$" "ansible"
TestCodebase "ARM" "arm-ttk" "Import-Module $ARM_TTK_PSD1 ; \$config = \$(Import-PowerShellDataFile -Path $ARM_LINTER_RULES) ; Test-AzTemplate @config -TemplatePath" ".*\.\(json\)\$" "arm"
TestCodebase "ANSIBLE" "ansible-lint" "ansible-lint -v -c ${ANSIBLE_LINTER_RULES}" ".*\.\(yml\|yaml\)\$" "ansible"
TestCodebase "ARM" "arm-ttk" "Import-Module ${ARM_TTK_PSD1} ; \${config} = \$(Import-PowerShellDataFile -Path ${ARM_LINTER_RULES}) ; Test-AzTemplate @config -TemplatePath" ".*\.\(json\)\$" "arm"
TestCodebase "BASH" "shellcheck" "shellcheck --color" ".*\.\(sh\|bash\|dash\|ksh\)\$" "shell"
TestCodebase "CFN" "cfn-lint" "cfn-lint --config-file $CFN_LINTER_RULES" ".*\.\(json\|yml\|yaml\)\$" "cfn"
TestCodebase "CLOJURE" "clj-kondo" "clj-kondo --config $CLOJURE_LINTER_RULES --lint" ".*\.\(clj\|cljs\|cljc\|edn\)\$" "clojure"
TestCodebase "COFFEESCRIPT" "coffeelint" "coffeelint -f $COFFEESCRIPT_LINTER_RULES" ".*\.\(coffee\)\$" "coffeescript"
TestCodebase "CSS" "stylelint" "stylelint --config $CSS_LINTER_RULES" ".*\.\(css\)\$" "css"
TestCodebase "DART" "dart" "dartanalyzer --fatal-infos --fatal-warnings --options $DART_LINTER_RULES" ".*\.\(dart\)\$" "dart"
TestCodebase "DOCKER" "dockerfilelint" "dockerfilelint -c $DOCKER_LINTER_RULES" ".*\(Dockerfile\)\$" "docker"
TestCodebase "CFN" "cfn-lint" "cfn-lint --config-file ${CFN_LINTER_RULES}" ".*\.\(json\|yml\|yaml\)\$" "cfn"
TestCodebase "CLOJURE" "clj-kondo" "clj-kondo --config ${CLOJURE_LINTER_RULES} --lint" ".*\.\(clj\|cljs\|cljc\|edn\)\$" "clojure"
TestCodebase "COFFEESCRIPT" "coffeelint" "coffeelint -f ${COFFEESCRIPT_LINTER_RULES}" ".*\.\(coffee\)\$" "coffeescript"
TestCodebase "CSS" "stylelint" "stylelint --config ${CSS_LINTER_RULES}" ".*\.\(css\)\$" "css"
TestCodebase "DART" "dart" "dartanalyzer --fatal-infos --fatal-warnings --options ${DART_LINTER_RULES}" ".*\.\(dart\)\$" "dart"
TestCodebase "DOCKER" "dockerfilelint" "dockerfilelint -c ${DOCKER_LINTER_RULES}" ".*\(Dockerfile\)\$" "docker"
TestCodebase "EDITORCONFIG" "editorconfig-checker" "editorconfig-checker" ".*\.ext$" "editorconfig-checker"
TestCodebase "ENV" "dotenv-linter" "dotenv-linter" ".*\.\(env\)\$" "env"
TestCodebase "GO" "golangci-lint" "golangci-lint run -c $GO_LINTER_RULES" ".*\.\(go\)\$" "golang"
TestCodebase "HTML" "htmlhint" "htmlhint --config $HTML_LINTER_RULES" ".*\.\(html\)\$" "html"
TestCodebase "JAVASCRIPT_ES" "eslint" "eslint --no-eslintrc -c $JAVASCRIPT_LINTER_RULES" ".*\.\(js\)\$" "javascript"
TestCodebase "JAVASCRIPT_STANDARD" "standard" "standard $JAVASCRIPT_STANDARD_LINTER_RULES" ".*\.\(js\)\$" "javascript"
TestCodebase "GO" "golangci-lint" "golangci-lint run -c ${GO_LINTER_RULES}" ".*\.\(go\)\$" "golang"
TestCodebase "HTML" "htmlhint" "htmlhint --config ${HTML_LINTER_RULES}" ".*\.\(html\)\$" "html"
TestCodebase "JAVASCRIPT_ES" "eslint" "eslint --no-eslintrc -c ${JAVASCRIPT_LINTER_RULES}" ".*\.\(js\)\$" "javascript"
TestCodebase "JAVASCRIPT_STANDARD" "standard" "standard ${JAVASCRIPT_STANDARD_LINTER_RULES}" ".*\.\(js\)\$" "javascript"
TestCodebase "JSON" "jsonlint" "jsonlint" ".*\.\(json\)\$" "json"
TestCodebase "KOTLIN" "ktlint" "ktlint" ".*\.\(kt\|kts\)\$" "kotlin"
TestCodebase "MARKDOWN" "markdownlint" "markdownlint -c $MARKDOWN_LINTER_RULES" ".*\.\(md\)\$" "markdown"
TestCodebase "MARKDOWN" "markdownlint" "markdownlint -c ${MARKDOWN_LINTER_RULES}" ".*\.\(md\)\$" "markdown"
TestCodebase "PERL" "perl" "perl -Mstrict -cw" ".*\.\(pl\)\$" "perl"
TestCodebase "PHP" "php" "php -l" ".*\.\(php\)\$" "php"
TestCodebase "OPENAPI" "spectral" "spectral lint -r $OPENAPI_LINTER_RULES" ".*\.\(ymlopenapi\|jsonopenapi\)\$" "openapi"
TestCodebase "POWERSHELL" "pwsh" "Invoke-ScriptAnalyzer -EnableExit -Settings $POWERSHELL_LINTER_RULES -Path" ".*\.\(ps1\|psm1\|psd1\|ps1xml\|pssc\|psrc\|cdxml\)\$" "powershell"
TestCodebase "PROTOBUF" "protolint" "protolint lint --config_path $PROTOBUF_LINTER_RULES" ".*\.\(proto\)\$" "protobuf"
TestCodebase "PYTHON" "pylint" "pylint --rcfile $PYTHON_LINTER_RULES" ".*\.\(py\)\$" "python"
TestCodebase "OPENAPI" "spectral" "spectral lint -r ${OPENAPI_LINTER_RULES}" ".*\.\(ymlopenapi\|jsonopenapi\)\$" "openapi"
TestCodebase "POWERSHELL" "pwsh" "Invoke-ScriptAnalyzer -EnableExit -Settings ${POWERSHELL_LINTER_RULES} -Path" ".*\.\(ps1\|psm1\|psd1\|ps1xml\|pssc\|psrc\|cdxml\)\$" "powershell"
TestCodebase "PROTOBUF" "protolint" "protolint lint --config_path ${PROTOBUF_LINTER_RULES}" ".*\.\(proto\)\$" "protobuf"
TestCodebase "PYTHON" "pylint" "pylint --rcfile ${PYTHON_LINTER_RULES}" ".*\.\(py\)\$" "python"
TestCodebase "RAKU" "raku" "raku -c" ".*\.\(raku\|rakumod\|rakutest\|pm6\|pl6\|p6\)\$" "raku"
TestCodebase "RUBY" "rubocop" "rubocop -c $RUBY_LINTER_RULES" ".*\.\(rb\)\$" "ruby"
TestCodebase "TERRAFORM" "tflint" "tflint -c $TERRAFORM_LINTER_RULES" ".*\.\(tf\)\$" "terraform"
TestCodebase "TYPESCRIPT_ES" "eslint" "eslint --no-eslintrc -c $TYPESCRIPT_LINTER_RULES" ".*\.\(ts\)\$" "typescript"
TestCodebase "TYPESCRIPT_STANDARD" "standard" "standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin $TYPESCRIPT_STANDARD_LINTER_RULES" ".*\.\(ts\)\$" "typescript"
TestCodebase "RUBY" "rubocop" "rubocop -c ${RUBY_LINTER_RULES}" ".*\.\(rb\)\$" "ruby"
TestCodebase "TERRAFORM" "tflint" "tflint -c ${TERRAFORM_LINTER_RULES}" ".*\.\(tf\)\$" "terraform"
TestCodebase "TYPESCRIPT_ES" "eslint" "eslint --no-eslintrc -c ${TYPESCRIPT_LINTER_RULES}" ".*\.\(ts\)\$" "typescript"
TestCodebase "TYPESCRIPT_STANDARD" "standard" "standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin ${TYPESCRIPT_STANDARD_LINTER_RULES}" ".*\.\(ts\)\$" "typescript"
TestCodebase "XML" "xmllint" "xmllint" ".*\.\(xml\)\$" "xml"
TestCodebase "YML" "yamllint" "yamllint -c $YAML_LINTER_RULES" ".*\.\(yml\|yaml\)\$" "yml"
TestCodebase "YML" "yamllint" "yamllint -c ${YAML_LINTER_RULES}" ".*\.\(yml\|yaml\)\$" "yml"
#################
# Footer prints #
@ -617,7 +617,7 @@ function LintAnsibleFiles() {
###########################################
# Validate we have ansible-lint installed #
###########################################
VALIDATE_INSTALL_CMD=$(command -v "$LINTER_NAME" 2>&1)
VALIDATE_INSTALL_CMD=$(command -v "${LINTER_NAME}" 2>&1)
#######################
# Load the error code #
@ -627,17 +627,17 @@ function LintAnsibleFiles() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
# Failed
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find $LINTER_NAME in system!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find ${LINTER_NAME} in system!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${VALIDATE_INSTALL_CMD}]${NC}"
exit 1
else
# Success
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
if [[ ${ACTIONS_RUNNER_DEBUG} == "true" ]]; then
# Success
echo -e "${NC}${F[B]}Successfully found binary in system${NC}"
echo "Location:[$VALIDATE_INSTALL_CMD]"
echo "Location:[${VALIDATE_INSTALL_CMD}]"
fi
fi
@ -654,18 +654,18 @@ function LintAnsibleFiles() {
######################################################
# Only go into ansible linter if we have base folder #
######################################################
if [ -d "$ANSIBLE_DIRECTORY" ]; then
if [ -d "${ANSIBLE_DIRECTORY}" ]; then
#################################
# Get list of all files to lint #
#################################
mapfile -t LIST_FILES < <(ls "$ANSIBLE_DIRECTORY"/*.{yaml,yml} 2>&1)
mapfile -t LIST_FILES < <(ls "${ANSIBLE_DIRECTORY}"/*.{yaml,yml} 2>&1)
###############################################################
# Set the list to empty if only MD and TXT files were changed #
###############################################################
# No need to run the full ansible checks on read only file changes
if [ "$READ_ONLY_CHANGE_FLAG" -eq 0 ]; then
if [ "${READ_ONLY_CHANGE_FLAG}" -eq 0 ]; then
##########################
# Set the array to empty #
##########################
@ -683,12 +683,12 @@ function LintAnsibleFiles() {
####################################
# Check if we have data to look at #
####################################
if [ $SKIP_FLAG -eq 0 ]; then
if [ ${SKIP_FLAG} -eq 0 ]; then
for LINE in "${PRINT_ARRAY[@]}"; do
#########################
# Print the header line #
#########################
echo "$LINE"
echo "${LINE}"
done
fi
@ -710,7 +710,7 @@ function LintAnsibleFiles() {
########################################
# Make sure we dont lint certain files #
########################################
if [[ $FILE == *"vault.yml"* ]] || [[ $FILE == *"galaxy.yml"* ]]; then
if [[ ${FILE} == *"vault.yml"* ]] || [[ ${FILE} == *"galaxy.yml"* ]]; then
# This is a file we dont look at
continue
fi
@ -723,18 +723,18 @@ function LintAnsibleFiles() {
####################
# Get the filename #
####################
FILE_NAME=$(basename "$ANSIBLE_DIRECTORY/$FILE" 2>&1)
FILE_NAME=$(basename "${ANSIBLE_DIRECTORY}/${FILE}" 2>&1)
##############
# File print #
##############
echo "---------------------------"
echo "File:[$FILE]"
echo "File:[${FILE}]"
################################
# Lint the file with the rules #
################################
LINT_CMD=$("$LINTER_NAME" -v -c "$ANSIBLE_LINTER_RULES" "$ANSIBLE_DIRECTORY/$FILE" 2>&1)
LINT_CMD=$("${LINTER_NAME}" -v -c "${ANSIBLE_LINTER_RULES}" "${ANSIBLE_DIRECTORY}/${FILE}" 2>&1)
#######################
# Load the error code #
@ -744,12 +744,12 @@ function LintAnsibleFiles() {
##############################
# Check the shell for errors #
##############################
if [ $ERROR_CODE -ne 0 ]; then
if [ ${ERROR_CODE} -ne 0 ]; then
#########
# Error #
#########
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}"
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LINT_CMD}]${NC}"
# Increment error count
((ERRORS_FOUND_ANSIBLE++))
@ -765,7 +765,7 @@ function LintAnsibleFiles() {
###########
# Success #
###########
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} was linted with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
echo -e "${NC}${F[B]} - File:${F[W]}[${FILE_NAME}]${F[B]} was linted with ${F[W]}[${LINTER_NAME}]${F[B]} successfully${NC}"
#######################################################
# Store the linting as a temporary file in TAP format #
@ -787,11 +787,11 @@ function LintAnsibleFiles() {
###############################
# Check to see if debug is on #
###############################
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
if [[ ${ACTIONS_RUNNER_DEBUG} == "true" ]]; then
########################
# No Ansible dir found #
########################
echo -e "${NC}${F[Y]}WARN!${NC} No Ansible base directory found at:[$ANSIBLE_DIRECTORY]${NC}"
echo -e "${NC}${F[Y]}WARN!${NC} No Ansible base directory found at:[${ANSIBLE_DIRECTORY}]${NC}"
echo "skipping ansible lint"
fi
fi
@ -808,7 +808,7 @@ function IsTAP() {
################################################################################
#### Function TransformTAPDetails ##############################################
function TransformTAPDetails() {
DATA=$1
DATA=${1}
if [ -n "${DATA}" ] && [ "${OUTPUT_DETAILS}" == "detailed" ] ; then
#########################################################
# Transform new lines to \\n, remove colours and colons #
@ -822,8 +822,8 @@ function HeaderTap() {
################
# Pull in Vars #
################
INDEX="$1" # File being validated
OUTPUT_FILE="$2" # Output location
INDEX="${1}" # File being validated
OUTPUT_FILE="${2}" # Output location
###################
# Print the goods #
@ -836,9 +836,9 @@ function OkTap() {
################
# Pull in Vars #
################
INDEX="$1" # Location
FILE="$2" # File being validated
TEMP_FILE="$3" # Temp file location
INDEX="${1}" # Location
FILE="${2}" # File being validated
TEMP_FILE="${3}" # Temp file location
###################
# Print the goods #
@ -851,9 +851,9 @@ function NotOkTap() {
################
# Pull in Vars #
################
INDEX="$1" # Location
FILE="$2" # File being validated
TEMP_FILE="$3" # Temp file location
INDEX="${1}" # Location
FILE="${2}" # File being validated
TEMP_FILE="${3}" # Temp file location
###################
# Print the goods #
@ -866,14 +866,14 @@ function AddDetailedMessageIfEnabled() {
################
# Pull in Vars #
################
LINT_CMD="$1" # Linter command
TEMP_FILE="$2" # Temp file
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}"
printf " ---\n message: %s\n ...\n" "${DETAILED_MSG}" >> "${TEMP_FILE}"
fi
}