mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-29 12:10:56 -05:00
commit
0f5e47e560
10 changed files with 172 additions and 165 deletions
|
@ -1,13 +1,19 @@
|
||||||
# AWS States language Test Cases
|
# AWS States language Test Cases
|
||||||
|
|
||||||
This folder holds the test cases for **AWS States Language**.
|
This folder holds the test cases for **AWS States Language**.
|
||||||
|
|
||||||
## Additional Docs
|
## Additional Docs
|
||||||
|
|
||||||
No Additional information is needed for this test case.
|
No Additional information is needed for this test case.
|
||||||
|
|
||||||
## Good Test Cases
|
## Good Test Cases
|
||||||
|
|
||||||
The test cases denoted: `LANGUAGE_good_FILE.EXTENSION` are all valid, and should pass successfully when linted.
|
The test cases denoted: `LANGUAGE_good_FILE.EXTENSION` are all valid, and should pass successfully when linted.
|
||||||
|
|
||||||
- **Note:** They are linted utilizing the default linter rules.
|
- **Note:** They are linted utilizing the default linter rules.
|
||||||
|
|
||||||
## Bad Test Cases
|
## Bad Test Cases
|
||||||
|
|
||||||
The test cases denoted: `LANGUAGE_bad_FILE.EXTENSION` are **NOT** valid, and should trigger errors when linted.
|
The test cases denoted: `LANGUAGE_bad_FILE.EXTENSION` are **NOT** valid, and should trigger errors when linted.
|
||||||
|
|
||||||
- **Note:** They are linted utilizing the default linter rules.
|
- **Note:** They are linted utilizing the default linter rules.
|
||||||
|
|
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -1,4 +1,4 @@
|
||||||
######################################################################
|
######################################################################
|
||||||
# These owners will be the default owners for everything in the repo #
|
# These owners will be the default owners for everything in the repo #
|
||||||
######################################################################
|
######################################################################
|
||||||
* @admiralawkbar @jwiebalk @zkoppert @IAmHughes
|
* @admiralawkbar @jwiebalk @zkoppert @IAmHughes @nemchik @Hanse00
|
||||||
|
|
2
.github/workflows/automerge-dependabot.yml
vendored
2
.github/workflows/automerge-dependabot.yml
vendored
|
@ -30,7 +30,7 @@ jobs:
|
||||||
if: github.actor == 'dependabot[bot]'
|
if: github.actor == 'dependabot[bot]'
|
||||||
steps:
|
steps:
|
||||||
- name: merge
|
- name: merge
|
||||||
uses: actions/github-script@0.2.0
|
uses: actions/github-script@v2
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
github.pullRequests.createReview({
|
github.pullRequests.createReview({
|
||||||
|
|
|
@ -166,7 +166,7 @@ But if you wish to select specific linters, we give you full control to choose w
|
||||||
and won't run anything unexpected.
|
and won't run anything unexpected.
|
||||||
|
|
||||||
| **ENV VAR** | **Default Value** | **Notes** |
|
| **ENV VAR** | **Default Value** | **Notes** |
|
||||||
| --- | --- | --- |
|
| -------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| **ACTIONS_RUNNER_DEBUG** | `false` | Flag to enable additional information about the linter, versions, and additional output. |
|
| **ACTIONS_RUNNER_DEBUG** | `false` | Flag to enable additional information about the linter, versions, and additional output. |
|
||||||
| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s). |
|
| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s). |
|
||||||
| **DEFAULT_BRANCH** | `master` | The name of the repository default branch. |
|
| **DEFAULT_BRANCH** | `master` | The name of the repository default branch. |
|
||||||
|
|
|
@ -86,7 +86,7 @@ function BuildFileList() {
|
||||||
###########################
|
###########################
|
||||||
# Extract just the file and extension, reverse it, cut off extension,
|
# Extract just the file and extension, reverse it, cut off extension,
|
||||||
# reverse it back, substitute to lowercase
|
# 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 #
|
# Print file #
|
||||||
|
@ -163,11 +163,11 @@ function BuildFileList() {
|
||||||
############################################
|
############################################
|
||||||
# Check if the file is AWS States Language #
|
# Check if the file is AWS States Language #
|
||||||
############################################
|
############################################
|
||||||
if DetectAWSStatesFIle "$FILE"; then
|
if DetectAWSStatesFIle "${FILE}"; then
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
################################
|
################################
|
||||||
FILE_ARRAY_STATES+=("$FILE")
|
FILE_ARRAY_STATES+=("${FILE}")
|
||||||
fi
|
fi
|
||||||
##########################################################
|
##########################################################
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
|
|
133
lib/linter.sh
133
lib/linter.sh
|
@ -21,6 +21,8 @@ source /action/lib/worker.sh # Source the function script(s)
|
||||||
###########
|
###########
|
||||||
# GLOBALS #
|
# GLOBALS #
|
||||||
###########
|
###########
|
||||||
|
# Default Vars
|
||||||
|
DEFAULT_RULES_LOCATION='/action/lib/.automation' # Default rules files location
|
||||||
# Ansible Vars
|
# Ansible Vars
|
||||||
ANSIBLE_FILE_NAME='.ansible-lint.yml' # Name of the file
|
ANSIBLE_FILE_NAME='.ansible-lint.yml' # Name of the file
|
||||||
ANSIBLE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ANSIBLE_FILE_NAME}" # Path to the Ansible lint rules
|
ANSIBLE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ANSIBLE_FILE_NAME}" # Path to the Ansible lint rules
|
||||||
|
@ -29,74 +31,71 @@ ARM_FILE_NAME='.arm-ttk.psd1' # Name o
|
||||||
ARM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ARM_FILE_NAME}" # Path to the ARM lint rules
|
ARM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ARM_FILE_NAME}" # Path to the ARM lint rules
|
||||||
# Cloudformation Vars
|
# Cloudformation Vars
|
||||||
CFN_FILE_NAME='.cfnlintrc.yml' # Name of the file
|
CFN_FILE_NAME='.cfnlintrc.yml' # Name of the file
|
||||||
CFN_LINTER_RULES="$DEFAULT_RULES_LOCATION/$CFN_FILE_NAME" # Path to the cloudformation lint rules
|
CFN_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CFN_FILE_NAME}" # Path to the cloudformation lint rules
|
||||||
# Clojure Vars
|
# Clojure Vars
|
||||||
CLOJURE_FILE_NAME='.clj-kondo/config.edn' # Name of the file
|
CLOJURE_FILE_NAME='.clj-kondo/config.edn' # Name of the file
|
||||||
CLOJURE_LINTER_RULES="$DEFAULT_RULES_LOCATION/$CLOJURE_FILE_NAME" # Path to the Clojure lint rules
|
CLOJURE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CLOJURE_FILE_NAME}" # Path to the Clojure lint rules
|
||||||
# Coffee Vars
|
# Coffee Vars
|
||||||
COFFEESCRIPT_LINTER_RULES="$DEFAULT_RULES_LOCATION/$COFFEE_FILE_NAME" # Path to the coffeescript lint rules
|
|
||||||
COFFEE_FILE_NAME='.coffee-lint.json' # Name of the file
|
COFFEE_FILE_NAME='.coffee-lint.json' # Name of the file
|
||||||
|
COFFEESCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${COFFEE_FILE_NAME}" # Path to the coffeescript lint rules
|
||||||
# CSS Vars
|
# CSS Vars
|
||||||
CSS_FILE_NAME='.stylelintrc.json' # Name of the file
|
CSS_FILE_NAME='.stylelintrc.json' # Name of the file
|
||||||
CSS_LINTER_RULES="$DEFAULT_RULES_LOCATION/$CSS_FILE_NAME" # Path to the CSS lint rules
|
CSS_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CSS_FILE_NAME}" # Path to the CSS lint rules
|
||||||
# Dart Vars
|
# Dart Vars
|
||||||
DART_FILE_NAME='analysis_options.yaml' # Name of the file
|
DART_FILE_NAME='analysis_options.yaml' # Name of the file
|
||||||
DART_LINTER_RULES="$DEFAULT_RULES_LOCATION/$DART_FILE_NAME" # Path to the DART lint rules
|
DART_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DART_FILE_NAME}" # Path to the DART lint rules
|
||||||
# Default Vars
|
|
||||||
DEFAULT_RULES_LOCATION='/action/lib/.automation' # Default rules files location
|
|
||||||
# Docker Vars
|
# Docker Vars
|
||||||
DOCKER_FILE_NAME='.dockerfilelintrc' # Name of the file
|
DOCKER_FILE_NAME='.dockerfilelintrc' # Name of the file
|
||||||
DOCKER_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DOCKER_FILE_NAME}" # Path to the Docker lint rules
|
DOCKER_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DOCKER_FILE_NAME}" # Path to the Docker lint rules
|
||||||
# Golang Vars
|
# Golang Vars
|
||||||
GO_FILE_NAME='.golangci.yml' # Name of the file
|
GO_FILE_NAME='.golangci.yml' # Name of the file
|
||||||
GO_LINTER_RULES="$DEFAULT_RULES_LOCATION/$GO_FILE_NAME" # Path to the Go lint rules
|
GO_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${GO_FILE_NAME}" # Path to the Go lint rules
|
||||||
# HTML Vars
|
# HTML Vars
|
||||||
HTML_FILE_NAME='.htmlhintrc' # Name of the file
|
HTML_FILE_NAME='.htmlhintrc' # Name of the file
|
||||||
HTML_LINTER_RULES="$DEFAULT_RULES_LOCATION/$HTML_FILE_NAME" # Path to the CSS lint rules
|
HTML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${HTML_FILE_NAME}" # Path to the CSS lint rules
|
||||||
# Javascript Vars
|
# Javascript Vars
|
||||||
JAVASCRIPT_FILE_NAME="${JAVASCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file
|
JAVASCRIPT_FILE_NAME="${JAVASCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file
|
||||||
JAVASCRIPT_LINTER_RULES="$DEFAULT_RULES_LOCATION/$JAVASCRIPT_FILE_NAME" # Path to the Javascript lint rules
|
JAVASCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${JAVASCRIPT_FILE_NAME}" # Path to the Javascript lint rules
|
||||||
JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard
|
JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard
|
||||||
# Default linter path
|
# Default linter path
|
||||||
LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory
|
LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory
|
||||||
# MD Vars
|
# MD Vars
|
||||||
MARKDOWN_FILE_NAME='.markdown-lint.yml' # Name of the file
|
MARKDOWN_FILE_NAME='.markdown-lint.yml' # Name of the file
|
||||||
MARKDOWN_LINTER_RULES="$DEFAULT_RULES_LOCATION/$MARKDOWN_FILE_NAME" # Path to the markdown lint rules
|
MARKDOWN_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${MARKDOWN_FILE_NAME}" # Path to the markdown lint rules
|
||||||
# OpenAPI Vars
|
# OpenAPI Vars
|
||||||
OPENAPI_FILE_NAME='.openapirc.yml' # Name of the file
|
OPENAPI_FILE_NAME='.openapirc.yml' # Name of the file
|
||||||
OPENAPI_LINTER_RULES="$DEFAULT_RULES_LOCATION/$OPENAPI_FILE_NAME" # Path to the OpenAPI lint rules
|
OPENAPI_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${OPENAPI_FILE_NAME}" # Path to the OpenAPI lint rules
|
||||||
# Powershell Vars
|
# Powershell Vars
|
||||||
POWERSHELL_FILE_NAME='.powershell-psscriptanalyzer.psd1' # Name of the file
|
POWERSHELL_FILE_NAME='.powershell-psscriptanalyzer.psd1' # Name of the file
|
||||||
POWERSHELL_LINTER_RULES="$DEFAULT_RULES_LOCATION/$POWERSHELL_FILE_NAME" # Path to the Powershell lint rules
|
POWERSHELL_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${POWERSHELL_FILE_NAME}" # Path to the Powershell lint rules
|
||||||
# Protocol Buffers Vars
|
# Protocol Buffers Vars
|
||||||
PROTOBUF_FILE_NAME='.protolintrc.yml' # Name of the file
|
PROTOBUF_FILE_NAME='.protolintrc.yml' # Name of the file
|
||||||
PROTOBUF_LINTER_RULES="$DEFAULT_RULES_LOCATION/$PROTOBUF_FILE_NAME" # Path to the Protocol Buffers lint rules
|
PROTOBUF_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${PROTOBUF_FILE_NAME}" # Path to the Protocol Buffers lint rules
|
||||||
# Python Vars
|
# Python Vars
|
||||||
PYTHON_FILE_NAME='.python-lint' # Name of the file
|
PYTHON_FILE_NAME='.python-lint' # Name of the file
|
||||||
PYTHON_LINTER_RULES="$DEFAULT_RULES_LOCATION/$PYTHON_FILE_NAME" # Path to the python lint rules
|
PYTHON_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${PYTHON_FILE_NAME}" # Path to the python lint rules
|
||||||
# Ruby Vars
|
# Ruby Vars
|
||||||
RUBY_FILE_NAME="${RUBY_CONFIG_FILE:-.ruby-lint.yml}" # Name of the file
|
RUBY_FILE_NAME="${RUBY_CONFIG_FILE:-.ruby-lint.yml}" # Name of the file
|
||||||
RUBY_LINTER_RULES="$DEFAULT_RULES_LOCATION/$RUBY_FILE_NAME" # Path to the ruby lint rules
|
RUBY_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${RUBY_FILE_NAME}" # Path to the ruby lint rules
|
||||||
# Terraform Vars
|
# Terraform Vars
|
||||||
TERRAFORM_FILE_NAME='.tflint.hcl' # Name of the file
|
TERRAFORM_FILE_NAME='.tflint.hcl' # Name of the file
|
||||||
TERRAFORM_LINTER_RULES="$DEFAULT_RULES_LOCATION/$TERRAFORM_FILE_NAME" # Path to the Terraform lint rules
|
TERRAFORM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${TERRAFORM_FILE_NAME}" # Path to the Terraform lint rules
|
||||||
# Typescript Vars
|
# Typescript Vars
|
||||||
TYPESCRIPT_FILE_NAME="${TYPESCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file
|
TYPESCRIPT_FILE_NAME="${TYPESCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file
|
||||||
TYPESCRIPT_LINTER_RULES="$DEFAULT_RULES_LOCATION/$TYPESCRIPT_FILE_NAME" # Path to the Typescript lint rules
|
TYPESCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${TYPESCRIPT_FILE_NAME}" # Path to the Typescript lint rules
|
||||||
TYPESCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard
|
TYPESCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard
|
||||||
# YAML Vars
|
# YAML Vars
|
||||||
YAML_FILE_NAME='.yaml-lint.yml' # Name of the file
|
YAML_FILE_NAME='.yaml-lint.yml' # Name of the file
|
||||||
YAML_LINTER_RULES="$DEFAULT_RULES_LOCATION/$YAML_FILE_NAME" # Path to the yaml lint rules
|
YAML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${YAML_FILE_NAME}" # Path to the yaml lint rules
|
||||||
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Linter array for information prints #
|
# Linter array for information prints #
|
||||||
#######################################
|
#######################################
|
||||||
LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'clj-kondo' 'coffeelint'
|
LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'clj-kondo'
|
||||||
'dart' 'dockerfilelint' 'dotenv-linter' 'eslint' 'golangci-lint' 'htmlhint'
|
'coffeelint' 'dart' 'dockerfilelint' 'dotenv-linter' 'eslint' 'golangci-lint'
|
||||||
'jsonlint' 'ktlint' 'markdownlint' 'perl' 'protolint' 'pwsh' 'pylint'
|
'htmlhint' 'jsonlint' 'ktlint' 'markdownlint' 'perl' 'protolint' 'pwsh'
|
||||||
'raku' 'rubocop' 'shellcheck' 'spectral' 'standard' 'stylelint' 'tflint'
|
'pylint' 'raku' 'rubocop' 'shellcheck' 'spectral' 'standard' 'stylelint'
|
||||||
'xmllint' 'yamllint')
|
'tflint' 'xmllint' 'yamllint')
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# Language array for prints #
|
# Language array for prints #
|
||||||
|
@ -105,8 +104,8 @@ LANGUAGE_ARRAY=('ANSIBLE' 'ARM' 'BASH' 'CFN' 'CLOJURE' 'COFFEESCRIPT'
|
||||||
'CSS' 'DART' 'DOCKER' 'ENV' 'GO' 'HTML' 'JAVASCRIPT_ES'
|
'CSS' 'DART' 'DOCKER' 'ENV' 'GO' 'HTML' 'JAVASCRIPT_ES'
|
||||||
'JAVASCRIPT_STANDARD' 'JSON' 'JSX' 'KOTLIN' 'MARKDOWN' 'OPENAPI'
|
'JAVASCRIPT_STANDARD' 'JSON' 'JSX' 'KOTLIN' 'MARKDOWN' 'OPENAPI'
|
||||||
'PERL' 'PHP' 'POWERSHELL' 'PROTOBUF' 'PYTHON'
|
'PERL' 'PHP' 'POWERSHELL' 'PROTOBUF' 'PYTHON'
|
||||||
'RAKU' 'RUBY' 'STATES' 'TERRAFORM' 'TSX' 'TYPESCRIPT_ES' 'TYPESCRIPT_STANDARD'
|
'RAKU' 'RUBY' 'STATES' 'TERRAFORM' 'TSX' 'TYPESCRIPT_ES'
|
||||||
'XML' 'YML')
|
'TYPESCRIPT_STANDARD' 'XML' 'YML')
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
# Array for all languages that were linted #
|
# Array for all languages that were linted #
|
||||||
|
@ -199,7 +198,7 @@ echo "${WARNING_ARRAY_TEST[*]}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
OUTPUT_FORMAT="${OUTPUT_FORMAT}" # Output format to be generated. Default none
|
OUTPUT_FORMAT="${OUTPUT_FORMAT}" # Output format to be generated. Default none
|
||||||
OUTPUT_FOLDER="${OUTPUT_FOLDER:-super-linter.report}" # Folder where the reports are generated. Default super-linter.report
|
OUTPUT_FOLDER="${OUTPUT_FOLDER:-super-linter.report}" # Folder where the reports are generated. Default super-linter.report
|
||||||
OUTPUT_DETAILS="${OUTPUT_DETAILS:-simpler}" # What level of details. (simpler or detailed). Default simpler
|
OUTPUT_DETAILS="${OUTPUT_DETAILS:-simpler}" # What level of details. (simpler or detailed). Default simpler
|
||||||
REPORT_OUTPUT_FOLDER="${DEFAULT_WORKSPACE}/${OUTPUT_FOLDER}"
|
REPORT_OUTPUT_FOLDER="${DEFAULT_WORKSPACE}/${OUTPUT_FOLDER}" # Location for the report folder
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# Array of changed files #
|
# Array of changed files #
|
||||||
|
@ -312,9 +311,9 @@ GetLinterVersions() {
|
||||||
# Go through the array of linters and print version info #
|
# Go through the array of linters and print version info #
|
||||||
##########################################################
|
##########################################################
|
||||||
for LINTER in "${LINTER_ARRAY[@]}"; do
|
for LINTER in "${LINTER_ARRAY[@]}"; do
|
||||||
###################
|
####################
|
||||||
# Get the version #
|
# Get the versions #
|
||||||
###################
|
####################
|
||||||
if [[ "${LINTER}" == "arm-ttk" ]]; then
|
if [[ "${LINTER}" == "arm-ttk" ]]; then
|
||||||
# Need specific command for ARM
|
# Need specific command for ARM
|
||||||
mapfile -t GET_VERSION_CMD < <(grep -iE 'version' "${ARM_TTK_PSD1}" | xargs 2>&1)
|
mapfile -t GET_VERSION_CMD < <(grep -iE 'version' "${ARM_TTK_PSD1}" | xargs 2>&1)
|
||||||
|
@ -586,13 +585,13 @@ DetectAWSStatesFIle() {
|
||||||
################
|
################
|
||||||
# Pull in Vars #
|
# Pull in Vars #
|
||||||
################
|
################
|
||||||
FILE="$1" # File that we need to validate
|
FILE="${1}" # File that we need to validate
|
||||||
|
|
||||||
# https://states-language.net/spec.html#example
|
# https://states-language.net/spec.html#example
|
||||||
###############################
|
###############################
|
||||||
# check if file has resources #
|
# check if file has resources #
|
||||||
###############################
|
###############################
|
||||||
if grep '"Resource": *"arn"*' "$FILE"; then
|
if grep '"Resource": *"arn"*' "${FILE}"; then
|
||||||
# Found it
|
# Found it
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -963,39 +962,39 @@ Footer() {
|
||||||
###############################
|
###############################
|
||||||
# Exit with 1 if errors found #
|
# Exit with 1 if errors found #
|
||||||
###############################
|
###############################
|
||||||
elif [ "$ERRORS_FOUND_ANSIBLE" -ne 0 ] ||
|
elif [ "${ERRORS_FOUND_ANSIBLE}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_ARM" -ne 0 ] ||
|
[ "${ERRORS_FOUND_ARM}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_BASH" -ne 0 ] ||
|
[ "${ERRORS_FOUND_BASH}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_CFN" -ne 0 ] ||
|
[ "${ERRORS_FOUND_CFN}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_CLOJURE" -ne 0 ] ||
|
[ "${ERRORS_FOUND_CLOJURE}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_COFFEESCRIPT" -ne 0 ] ||
|
[ "${ERRORS_FOUND_COFFEESCRIPT}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_CSS" -ne 0 ] ||
|
[ "${ERRORS_FOUND_CSS}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_DART" -ne 0 ] ||
|
[ "${ERRORS_FOUND_DART}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_DOCKER" -ne 0 ] ||
|
[ "${ERRORS_FOUND_DOCKER}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_ENV" -ne 0 ] ||
|
[ "${ERRORS_FOUND_ENV}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_GO" -ne 0 ] ||
|
[ "${ERRORS_FOUND_GO}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_HTML" -ne 0 ] ||
|
[ "${ERRORS_FOUND_HTML}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JAVASCRIPT_ES" -ne 0 ] ||
|
[ "${ERRORS_FOUND_JAVASCRIPT_ES}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JAVASCRIPT_STANDARD" -ne 0 ] ||
|
[ "${ERRORS_FOUND_JAVASCRIPT_STANDARD}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JSON" -ne 0 ] ||
|
[ "${ERRORS_FOUND_JSON}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JSX" -ne 0 ] ||
|
[ "${ERRORS_FOUND_JSX}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_KOTLIN" -ne 0 ] ||
|
[ "${ERRORS_FOUND_KOTLIN}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_MARKDOWN" -ne 0 ] ||
|
[ "${ERRORS_FOUND_MARKDOWN}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_OPENAPI" -ne 0 ] ||
|
[ "${ERRORS_FOUND_OPENAPI}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PERL" -ne 0 ] ||
|
[ "${ERRORS_FOUND_PERL}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PHP" -ne 0 ] ||
|
[ "${ERRORS_FOUND_PHP}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_POWERSHELL" -ne 0 ] ||
|
[ "${ERRORS_FOUND_POWERSHELL}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PROTOBUF" -ne 0 ] ||
|
[ "${ERRORS_FOUND_PROTOBUF}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PYTHON" -ne 0 ] ||
|
[ "${ERRORS_FOUND_PYTHON}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_RAKU" -ne 0 ] ||
|
[ "${ERRORS_FOUND_RAKU}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_RUBY" -ne 0 ] ||
|
[ "${ERRORS_FOUND_RUBY}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_STATES" -ne 0 ] ||
|
[ "${ERRORS_FOUND_STATES}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TERRAFORM" -ne 0 ] ||
|
[ "${ERRORS_FOUND_TERRAFORM}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TSX" -ne 0 ] ||
|
[ "${ERRORS_FOUND_TSX}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TYPESCRIPT_ES" -ne 0 ] ||
|
[ "${ERRORS_FOUND_TYPESCRIPT_ES}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TYPESCRIPT_STANDARD" -ne 0 ] ||
|
[ "${ERRORS_FOUND_TYPESCRIPT_STANDARD}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_XML" -ne 0 ] ||
|
[ "${ERRORS_FOUND_XML}" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_YML" -ne 0 ]; then
|
[ "${ERRORS_FOUND_YML}" -ne 0 ]; then
|
||||||
# Failed exit
|
# Failed exit
|
||||||
echo -e "${NC}${F[R]}Exiting with errors found!${NC}"
|
echo -e "${NC}${F[R]}Exiting with errors found!${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1531,7 +1530,7 @@ fi
|
||||||
######################
|
######################
|
||||||
# AWS STATES LINTING #
|
# AWS STATES LINTING #
|
||||||
######################
|
######################
|
||||||
if [ "$VALIDATE_STATES" == "true" ]; then
|
if [ "${VALIDATE_STATES}" == "true" ]; then
|
||||||
#########################
|
#########################
|
||||||
# Lint the STATES files #
|
# Lint the STATES files #
|
||||||
#########################
|
#########################
|
||||||
|
|
|
@ -260,9 +260,9 @@ function GetValidationInfo() {
|
||||||
##########################################
|
##########################################
|
||||||
# Validate if we should check AWS States #
|
# Validate if we should check AWS States #
|
||||||
##########################################
|
##########################################
|
||||||
if [[ $ANY_SET == "true" ]]; then
|
if [[ ${ANY_SET} == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z $VALIDATE_STATES ]]; then
|
if [[ -z ${VALIDATE_STATES} ]]; then
|
||||||
# STATES flag was not set - default to false
|
# STATES flag was not set - default to false
|
||||||
VALIDATE_STATES="false"
|
VALIDATE_STATES="false"
|
||||||
fi
|
fi
|
||||||
|
@ -735,7 +735,7 @@ function GetValidationInfo() {
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [HTML] files in code base...")
|
PRINT_ARRAY+=("- Excluding [HTML] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ $VALIDATE_STATES == "true" ]]; then
|
if [[ ${VALIDATE_STATES} == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [AWS STATES] files in code base...")
|
PRINT_ARRAY+=("- Validating [AWS STATES] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [AWS STATES] files in code base...")
|
PRINT_ARRAY+=("- Excluding [AWS STATES] files in code base...")
|
||||||
|
|
|
@ -217,6 +217,7 @@ function LintCodebase() {
|
||||||
#########
|
#########
|
||||||
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}[${LINT_CMD}]${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
|
# Increment the error count
|
||||||
(("ERRORS_FOUND_${FILE_TYPE}++"))
|
(("ERRORS_FOUND_${FILE_TYPE}++"))
|
||||||
|
|
||||||
|
@ -460,6 +461,7 @@ function TestCodebase() {
|
||||||
#########
|
#########
|
||||||
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} This file should have failed test case!${NC}"
|
||||||
|
echo -e "${NC}${B[R]}${F[W]}Command run:${NC}[\$${LINT_CMD}]${NC}"
|
||||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LINT_CMD}]${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} Linter CMD:[${LINTER_COMMAND} ${FILE}]${NC}"
|
||||||
# Increment the error count
|
# Increment the error count
|
||||||
|
@ -577,11 +579,11 @@ function RunTestCases() {
|
||||||
TestCodebase "PROTOBUF" "protolint" "protolint lint --config_path ${PROTOBUF_LINTER_RULES}" ".*\.\(proto\)\$" "protobuf"
|
TestCodebase "PROTOBUF" "protolint" "protolint lint --config_path ${PROTOBUF_LINTER_RULES}" ".*\.\(proto\)\$" "protobuf"
|
||||||
TestCodebase "PYTHON" "pylint" "pylint --rcfile ${PYTHON_LINTER_RULES}" ".*\.\(py\)\$" "python"
|
TestCodebase "PYTHON" "pylint" "pylint --rcfile ${PYTHON_LINTER_RULES}" ".*\.\(py\)\$" "python"
|
||||||
TestCodebase "RAKU" "raku" "raku -c" ".*\.\(raku\|rakumod\|rakutest\|pm6\|pl6\|p6\)\$" "raku"
|
TestCodebase "RAKU" "raku" "raku -c" ".*\.\(raku\|rakumod\|rakutest\|pm6\|pl6\|p6\)\$" "raku"
|
||||||
TestCodebase "RUBY" "rubocop" "rubocop -c $RUBY_LINTER_RULES" ".*\.\(rb\)\$" "ruby"
|
TestCodebase "RUBY" "rubocop" "rubocop -c ${RUBY_LINTER_RULES}" ".*\.\(rb\)\$" "ruby"
|
||||||
TestCodebase "STATES" "asl-validator" "asl-validator --json-path" ".*\.\(json\)\$" "states"
|
TestCodebase "STATES" "asl-validator" "asl-validator --json-path" ".*\.\(json\)\$" "states"
|
||||||
TestCodebase "TERRAFORM" "tflint" "tflint -c $TERRAFORM_LINTER_RULES" ".*\.\(tf\)\$" "terraform"
|
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_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 "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 "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"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue