mirror of
https://github.com/super-linter/super-linter.git
synced 2025-03-12 09:19:30 -04:00
Some checks failed
Publish Images / Build and Test (push) Has been cancelled
Build and Test / Set build metadata (push) Has been cancelled
Build and Test / Build test suite matrix (push) Has been cancelled
Build and Test / preview-release-notes (push) Has been cancelled
Lint commit / commitlint (push) Has been cancelled
Publish Images / Release (push) Has been cancelled
Build and Test / Build and Test (push) Has been cancelled
Build and Test / Test the Super-linter GitHub Action (push) Has been cancelled
Build and Test / Run test cases (push) Has been cancelled
Build and Test / Check if all the tests passed (push) Has been cancelled
Skip symbolic links when passing files to Prettier - Fix #6378 - [`lib/functions/detectFiles.sh`]: Add `IsNotSymbolicLink()` function to check whether provided file is symbolic link or not - [`lib/functions/buildFileList.sh`]: Use `IsNotSymbolicLink()` function to not add files that are symbolic links to the file array for Prettier - [`test/lib/detectFilesTest.sh`]: Add test for `IsNotSymbolicLink()` function - Add `test/linters/prettier/test_symlink_good.md` file symlinked into parent dir's `README.md` to test it is skipped from Prettier (also exclude its directory from JSCPD to suppress error about cloned content)
166 lines
4.1 KiB
Bash
Executable file
166 lines
4.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
# shellcheck disable=SC2034
|
|
LOG_LEVEL="DEBUG"
|
|
|
|
# shellcheck source=/dev/null
|
|
source "lib/functions/log.sh"
|
|
|
|
# shellcheck source=/dev/null
|
|
source "lib/functions/detectFiles.sh"
|
|
|
|
function RecognizeNoShebangTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/bash_exec/libraries/noShebang_bad.sh"
|
|
|
|
debug "Confirming ${FILE} has no shebang"
|
|
|
|
if ! HasNoShebang "${FILE}"; then
|
|
fatal "${FILE} is mis-classified as having a shebang"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
RecognizeCommentIsNotShebangTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/bash_exec/libraries/comment_bad.sh"
|
|
|
|
debug "Confirming ${FILE} starting with a comment has no shebang"
|
|
|
|
if ! HasNoShebang "${FILE}"; then
|
|
fatal "${FILE} with a comment is mis-classified as having a shebang"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
RecognizeIndentedShebangAsCommentTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/bash_exec/libraries/indentedShebang_bad.sh"
|
|
|
|
debug "Confirming indented shebang in ${FILE} is considered a comment"
|
|
|
|
if ! HasNoShebang "${FILE}"; then
|
|
fatal "${FILE} with a comment is mis-classified as having a shebang"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
RecognizeSecondLineShebangAsCommentTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/bash_exec/libraries/secondLineShebang_bad.sh"
|
|
|
|
debug "Confirming shebang on second line in ${FILE} is considered a comment"
|
|
|
|
if ! HasNoShebang "${FILE}"; then
|
|
fatal "${FILE} with a comment is mis-classified as having a shebang"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function RecognizeShebangTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/bash_exec/libraries/shebang_bad.sh"
|
|
|
|
debug "Confirming ${FILE} has a shebang"
|
|
|
|
if HasNoShebang "${FILE}"; then
|
|
fatal "${FILE} is mis-classified as not having a shebang"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function RecognizeShebangWithBlankTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/bash_exec/libraries/shebangWithBlank_bad.sh"
|
|
|
|
debug "Confirming shebang with blank in ${FILE} is recognized"
|
|
|
|
if HasNoShebang "${FILE}"; then
|
|
fatal "${FILE} is mis-classified as not having a shebang"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function IsAnsibleDirectoryTest() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
|
|
local GITHUB_WORKSPACE
|
|
GITHUB_WORKSPACE="$(mktemp -d)"
|
|
local FILE="${GITHUB_WORKSPACE}/ansible"
|
|
mkdir -p "${FILE}"
|
|
local ANSIBLE_DIRECTORY="/ansible"
|
|
export ANSIBLE_DIRECTORY
|
|
|
|
debug "Confirming that ${FILE} is an Ansible directory"
|
|
|
|
if ! IsAnsibleDirectory "${FILE}"; then
|
|
fatal "${FILE} is not considered to be an Ansible directory"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function RecognizeNotSymbolicLink() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/symboliclinks/not_symbolic_link"
|
|
|
|
debug "Confirming that ${FILE} is not a symbolic link"
|
|
|
|
if ! IsNotSymbolicLink "${FILE}"; then
|
|
fatal "${FILE} is a symbolic link"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
function RecognizeSymbolicLink() {
|
|
local FUNCTION_NAME
|
|
FUNCTION_NAME="${FUNCNAME[0]}"
|
|
info "${FUNCTION_NAME} start"
|
|
local FILE="test/linters/symboliclinks/symbolic_link"
|
|
|
|
debug "Confirming that ${FILE} is a symbolic link"
|
|
|
|
if IsNotSymbolicLink "${FILE}"; then
|
|
fatal "${FILE} is not a symbolic link"
|
|
fi
|
|
|
|
notice "${FUNCTION_NAME} PASS"
|
|
}
|
|
|
|
RecognizeNoShebangTest
|
|
RecognizeCommentIsNotShebangTest
|
|
RecognizeIndentedShebangAsCommentTest
|
|
RecognizeSecondLineShebangAsCommentTest
|
|
RecognizeShebangTest
|
|
RecognizeShebangWithBlankTest
|
|
RecognizeNotSymbolicLink
|
|
RecognizeSymbolicLink
|
|
|
|
IsAnsibleDirectoryTest
|