This is an automated email from the ASF dual-hosted git repository. aw pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/yetus.git
The following commit(s) were added to refs/heads/main by this push: new a6731e16 YETUS-1202. plug-ins cannot use filefilter to build lists of files (#291) a6731e16 is described below commit a6731e16fecd1d751220a15c3f9aefd21f28a508 Author: Allen Wittenauer <a...@apache.org> AuthorDate: Wed Oct 12 08:08:51 2022 -0700 YETUS-1202. plug-ins cannot use filefilter to build lists of files (#291) --- .../in-progress/precommit/advanced.html.md | 4 ++- precommit/src/main/shell/plugins.d/hadolint.sh | 8 ++--- precommit/src/main/shell/plugins.d/shelldocs.sh | 13 ++++++++ precommit/src/main/shell/plugins.d/yamllint.sh | 35 +++++++++++----------- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/asf-site-src/source/documentation/in-progress/precommit/advanced.html.md b/asf-site-src/source/documentation/in-progress/precommit/advanced.html.md index a6a36750..5257321a 100644 --- a/asf-site-src/source/documentation/in-progress/precommit/advanced.html.md +++ b/asf-site-src/source/documentation/in-progress/precommit/advanced.html.md @@ -62,7 +62,9 @@ This function call registers the `pluginname` so that test-patch knows that it e function pluginname_filefilter ``` -defines the filefilter for the `pluginname` plug-in. +defines the filefilter for the `pluginname` plug-in. This function determines if the plug-in should +execute given the filename. If more extensive analysis is required, execute `add_test` and do that +work later as there is a chance the file has not been added to the file system yet. Similarly, there are other functions that may be defined during the test-patch run: diff --git a/precommit/src/main/shell/plugins.d/hadolint.sh b/precommit/src/main/shell/plugins.d/hadolint.sh index 61a72814..b052f741 100755 --- a/precommit/src/main/shell/plugins.d/hadolint.sh +++ b/precommit/src/main/shell/plugins.d/hadolint.sh @@ -23,16 +23,12 @@ HADOLINT_TIMER=0 HADOLINT=${HADOLINT:-$(command -v hadolint 2>/dev/null)} HADOLINT_VERSION='' -# files that are going to get hadolint'd -HADOLINT_CHECKFILES=() - function hadolint_filefilter { declare filename=$1 if [[ ${filename} =~ Dockerfile ]]; then add_test hadolint - yetus_add_array_element HADOLINT_CHECKFILES "${filename}" fi } @@ -95,8 +91,8 @@ function hadolint_logic args=(--no-color) fi - for i in "${HADOLINT_CHECKFILES[@]}"; do - if [[ -f "${i}" ]]; then + for i in "${CHANGED_FILES[@]}"; do + if [[ "${i}" =~ Dockerfile ]] && [[ -f "${i}" ]]; then ## transform from ## filename:line\sCODE Text diff --git a/precommit/src/main/shell/plugins.d/shelldocs.sh b/precommit/src/main/shell/plugins.d/shelldocs.sh index 1457c16b..55ad5c96 100755 --- a/precommit/src/main/shell/plugins.d/shelldocs.sh +++ b/precommit/src/main/shell/plugins.d/shelldocs.sh @@ -148,6 +148,19 @@ function shelldocs_postapply echo "Running shelldocs against all identifiable shell scripts" # we re-check this in case one has been added for i in $(shelldocs_private_findbash); do + + skipflag="false" + + for excludepath in "${EXCLUDE_PATHS[@]}"; do + if [[ "${i}" =~ ${excludepath} ]]; then + skipflag="true" + fi + done + + if [[ "${skipflag}" == "true" ]]; then + continue + fi + if [[ -f ${i} ]]; then "${SHELLDOCS}" --input "${i}" --lint >> "${PATCH_DIR}/patch-shelldocs-result.txt" 2>&1 fi diff --git a/precommit/src/main/shell/plugins.d/yamllint.sh b/precommit/src/main/shell/plugins.d/yamllint.sh index 0eb6daa9..eeb55a69 100755 --- a/precommit/src/main/shell/plugins.d/yamllint.sh +++ b/precommit/src/main/shell/plugins.d/yamllint.sh @@ -22,9 +22,6 @@ add_test_type yamllint YAMLLINT_TIMER=0 YAMLLINT=${YAMLLINT:-$(command -v yamllint 2>/dev/null)} -# files that are going to get yamllint'd -YAMLLINT_CHECKFILES=() - function yamllint_filefilter { declare filename=$1 @@ -32,7 +29,6 @@ function yamllint_filefilter if [[ ${filename} =~ \.yaml$ ]] || [[ ${filename} =~ \.yml$ ]]; then add_test yamllint - yetus_add_array_element YAMLLINT_CHECKFILES "${filename}" fi } @@ -54,19 +50,24 @@ function yamllint_logic pushd "${BASEDIR}" >/dev/null || return 1 - for i in "${YAMLLINT_CHECKFILES[@]}"; do - if [[ -f "${i}" ]]; then - fn="" - while read -r; do - if [[ -z "${fn}" ]]; then - fn=$REPLY - elif [[ -n "${REPLY}" ]]; then - # (space)line:col(space)error/warning(space)text - output=$(echo "${REPLY}" | awk '{$1=$1":"; $2=$2":"; print $0;}') - # fn:line:col:(space)error/warning:(space)text - echo "${fn}:${output}" >> "${PATCH_DIR}/${repostatus}-yamllint-result.txt" - fi - done < <("${YAMLLINT}" "${i}") + for i in "${CHANGED_FILES[@]}"; do + + if [[ ${i} =~ \.yaml$ ]] || + [[ ${i} =~ \.yml$ ]]; then + + if [[ -f "${i}" ]]; then + fn="" + while read -r; do + if [[ -z "${fn}" ]]; then + fn=$REPLY + elif [[ -n "${REPLY}" ]]; then + # (space)line:col(space)error/warning(space)text + output=$(echo "${REPLY}" | awk '{$1=$1":"; $2=$2":"; print $0;}') + # fn:line:col:(space)error/warning:(space)text + echo "${fn}:${output}" >> "${PATCH_DIR}/${repostatus}-yamllint-result.txt" + fi + done < <("${YAMLLINT}" "${i}") + fi fi done popd > /dev/null || return 1