diff --git a/TEMPLATES/.hadolint.yml b/TEMPLATES/.hadolint.yaml similarity index 100% rename from TEMPLATES/.hadolint.yml rename to TEMPLATES/.hadolint.yaml diff --git a/docs/disabling-linters.md b/docs/disabling-linters.md index ca3947ce..1c254c92 100644 --- a/docs/disabling-linters.md +++ b/docs/disabling-linters.md @@ -311,9 +311,9 @@ analyzer: ### Hadolint standard Config file -- `.github/linters/.hadolint.yml` +- `.github/linters/.hadolint.yaml` - You can pass multiple rules and overwrite default rules -- File should be located at: `.github/linters/.hadolint.yml` +- File should be located at: `.github/linters/.hadolint.yaml` ### Hadolint disable single line @@ -1009,7 +1009,7 @@ var = "terrible code down here..." - `.github/linters/.lintr` - You can pass multiple rules and overwrite default rules - You can use either one `.lintr` file in the root of your repository and/or additonal `.lintr` files in subdirectories. When linting a file lintr will look for config files from the file location upwards and will use the closest one. -- Absolute paths for exclusions will not work due to the code being linted within the docker environment. Use paths relative to the `.lintr` file in which youare adding them. +- Absolute paths for exclusions will not work due to the code being linted within the docker environment. Use paths relative to the `.lintr` file in which youare adding them. - **Note:** The defaults adhere to the [tidyverse styleguide](https://style.tidyverse.org/) ### lintr disable single line diff --git a/lib/linter.sh b/lib/linter.sh index 8e63b3bc..3051ed64 100755 --- a/lib/linter.sh +++ b/lib/linter.sh @@ -79,7 +79,7 @@ CSS_FILE_NAME="${CSS_FILE_NAME:-.stylelintrc.json}" DART_FILE_NAME="analysis_options.yml" # shellcheck disable=SC2034 # Variable is referenced indirectly DOCKERFILE_FILE_NAME=".dockerfilelintrc" -DOCKERFILE_HADOLINT_FILE_NAME="${DOCKERFILE_HADOLINT_FILE_NAME:-.hadolint.yml}" +DOCKERFILE_HADOLINT_FILE_NAME="${DOCKERFILE_HADOLINT_FILE_NAME:-.hadolint.yaml}" EDITORCONFIG_FILE_NAME="${EDITORCONFIG_FILE_NAME:-.ecrc}" # shellcheck disable=SC2034 # Variable is referenced indirectly GO_FILE_NAME=".golangci.yml" @@ -380,6 +380,9 @@ GetLinterRules() { return fi + debug "Initializing LANGUAGE_LINTER_RULES value to an empty string..." + eval "${LANGUAGE_LINTER_RULES}=" + ########################## # Get the file extension # ########################## @@ -387,10 +390,12 @@ GetLinterRules() { FILE_NAME=$(basename "${!LANGUAGE_FILE_NAME}" ".${FILE_EXTENSION}") debug "${LANGUAGE_NAME} language rule file (${!LANGUAGE_FILE_NAME}) has ${FILE_NAME} name and ${FILE_EXTENSION} extension" - ############################### - # Set the secondary file name # - ############################### + ######################################## + # Set the secondary file name and path # + ######################################## + debug "Initializing SECONDARY_FILE_NAME and SECONDARY_LANGUAGE_FILE_PATH..." SECONDARY_FILE_NAME='' + SECONDARY_LANGUAGE_FILE_PATH= ################################# # Check for secondary file name # @@ -416,29 +421,28 @@ GetLinterRules() { # Update the path to the file location # ######################################## eval "${LANGUAGE_LINTER_RULES}=${LANGUAGE_FILE_PATH}" - else - debug " -> Codebase does NOT have file:[${LANGUAGE_FILE_PATH}]" - # Check if we have secondary name to check - if [ -n "$SECONDARY_FILE_NAME" ]; then - SECONDARY_LANGUAGE_FILE_PATH="${GITHUB_WORKSPACE}/${LINTER_RULES_PATH}/${SECONDARY_FILE_NAME}" - debug "${LANGUAGE_NAME} language rule file has a secondary rules file name to check (${SECONDARY_FILE_NAME}). Path: ${SECONDARY_LANGUAGE_FILE_PATH}" - if [ -f "${SECONDARY_LANGUAGE_FILE_PATH}" ]; then - info "----------------------------------------------" - info "User provided file:[${SECONDARY_LANGUAGE_FILE_PATH}] exists, setting rules file..." + # Check if we have secondary file name to look for + elif [ -n "$SECONDARY_FILE_NAME" ]; then + debug " -> Codebase does NOT have file:[${LANGUAGE_FILE_PATH}]." + SECONDARY_LANGUAGE_FILE_PATH="${GITHUB_WORKSPACE}/${LINTER_RULES_PATH}/${SECONDARY_FILE_NAME}" + debug "${LANGUAGE_NAME} language rule file has a secondary rules file name to check (${SECONDARY_FILE_NAME}). Path: ${SECONDARY_LANGUAGE_FILE_PATH}" - ######################################## - # Update the path to the file location # - ######################################## - eval "${LANGUAGE_LINTER_RULES}=${SECONDARY_LANGUAGE_FILE_PATH}" - fi + if [ -f "${SECONDARY_LANGUAGE_FILE_PATH}" ]; then + info "----------------------------------------------" + info "User provided file:[${SECONDARY_LANGUAGE_FILE_PATH}] exists, setting rules file..." + + ######################################## + # Update the path to the file location # + ######################################## + eval "${LANGUAGE_LINTER_RULES}=${SECONDARY_LANGUAGE_FILE_PATH}" fi - + else ######################################################## # No user default provided, using the template default # ######################################################## eval "${LANGUAGE_LINTER_RULES}=${DEFAULT_RULES_LOCATION}/${!LANGUAGE_FILE_NAME}" - debug " -> Codebase does NOT have file:[${LANGUAGE_FILE_PATH}], nor file:[${SECONDARY_LANGUAGE_FILE_PATH}], using Default rules at:[${!LANGUAGE_LINTER_RULES}]" + debug " -> Codebase does NOT have file:[${LANGUAGE_FILE_PATH}], nor the file:[${SECONDARY_LANGUAGE_FILE_PATH}], using Default rules at:[${!LANGUAGE_LINTER_RULES}]" fi debug " -> Language rules file variable (${LANGUAGE_LINTER_RULES}) value is: ${!LANGUAGE_LINTER_RULES}"