From 4b796b5e6134d49bf3c8beee2e147ff048fb1e2d Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 01:01:29 -0400 Subject: [PATCH 01/13] Fixed bug with separator for filenames that contain spaces --- test/test new 1.txt | 1 + test/test new.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 test/test new 1.txt diff --git a/test/test new 1.txt b/test/test new 1.txt new file mode 100644 index 00000000000..9f4b6d8bfea --- /dev/null +++ b/test/test new 1.txt @@ -0,0 +1 @@ +This is a test file diff --git a/test/test new.txt b/test/test new.txt index 0527e6bd2d7..df6938c7e08 100644 --- a/test/test new.txt +++ b/test/test new.txt @@ -1 +1 @@ -This is a test +This is a test for filenames with spaces From 15a30db2b829c04bf2e0c1751dcc3c5d34dc05dd Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 16:12:21 -0400 Subject: [PATCH 02/13] Updated to use printf --- entrypoint.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index f25bee47ce9..d7731ff3fad 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -124,23 +124,23 @@ else ALL_MODIFIED_ARRAY=("${ALL_MODIFIED_ARRAY[@]}" "${ALL_MODIFIED_CURRENT_ARRAY[@]}") done - ADDED=$(echo "${ADDED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - COPIED=$(echo "${COPIED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - DELETED=$(echo "${DELETED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - MODIFIED=$(echo "${MODIFIED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - RENAMED=$(echo "${RENAMED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - TYPE_CHANGED=$(echo "${TYPE_CHANGED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - UNMERGED=$(echo "${UNMERGED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - UNKNOWN=$(echo "${UNKNOWN_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_MODIFIED=$(echo "${ALL_MODIFIED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ADDED=$(printf "%s\n" "${ADDED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + COPIED=$(printf "%s\n" "${COPIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + DELETED=$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + MODIFIED=$(printf "%s\n" "${MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + RENAMED=$(printf "%s\n" "${RENAMED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + TYPE_CHANGED=$(printf "%s\n" "${TYPE_CHANGED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + UNMERGED=$(printf "%s\n" "${UNMERGED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + UNKNOWN=$(printf "%s\n" "${UNKNOWN_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED_AND_MODIFIED=$(printf "%s\n" "${ALL_CHANGED_AND_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_MODIFIED=$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") - IFS=" " read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(echo "${ALL_MODIFIED_ARRAY[*]}" | tr " " "\n" | sort -u | tr "\n" " ")" + IFS=" " read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u | tr "\n" " ")" IFS=" " read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | tr " " "\n" | sort | uniq -u | tr "\n" " ")" - OTHER_MODIFIED=$(echo "${OTHER_MODIFIED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + OTHER_MODIFIED=$(printf "%s\n" "${OTHER_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') echo "Matching modified files: ${UNIQUE_ALL_MODIFIED_ARRAY[*]}" @@ -160,10 +160,10 @@ else OTHER_DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") - IFS=" " read -r -a UNIQUE_DELETED_ARRAY <<< "$(echo "${DELETED_ARRAY[*]}" | tr " " "\n" | sort -u | tr "\n" " ")" + IFS=" " read -r -a UNIQUE_DELETED_ARRAY <<< "$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u | tr "\n" " ")" IFS=" " read -r -a OTHER_DELETED_ARRAY <<< "$(echo "${OTHER_DELETED[@]}" "${UNIQUE_DELETED_ARRAY[@]}" | tr " " "\n" | sort | uniq -u | tr "\n" " ")" - OTHER_DELETED=$(echo "${OTHER_DELETED_ARRAY[*]}" | tr " " "\n" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + OTHER_DELETED=$(printf "%s\n" "${OTHER_DELETED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') echo "Matching deleted files: ${UNIQUE_DELETED_ARRAY[*]}" From 1f08a855343b987e7d023272020128cc1ffaa824 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 16:14:30 -0400 Subject: [PATCH 03/13] Updated entrypoint.sh --- entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index d7731ff3fad..44a8a7a7c11 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -138,7 +138,7 @@ else ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") IFS=" " read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u | tr "\n" " ")" - IFS=" " read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | tr " " "\n" | sort | uniq -u | tr "\n" " ")" + IFS=" " read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort | uniq -u | tr "\n" " ")" OTHER_MODIFIED=$(printf "%s\n" "${OTHER_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') @@ -161,7 +161,7 @@ else OTHER_DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") IFS=" " read -r -a UNIQUE_DELETED_ARRAY <<< "$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u | tr "\n" " ")" - IFS=" " read -r -a OTHER_DELETED_ARRAY <<< "$(echo "${OTHER_DELETED[@]}" "${UNIQUE_DELETED_ARRAY[@]}" | tr " " "\n" | sort | uniq -u | tr "\n" " ")" + IFS=" " read -r -a OTHER_DELETED_ARRAY <<< "$(echo "${OTHER_DELETED[@]}" "${UNIQUE_DELETED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort | uniq -u | tr "\n" " ")" OTHER_DELETED=$(printf "%s\n" "${OTHER_DELETED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') From c6b5b3c26ba2f6261e8cfa6d63654dfbf5f96f94 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 17:03:21 -0400 Subject: [PATCH 04/13] Updated internal field separator. --- entrypoint.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 44a8a7a7c11..b4a5e021ebf 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -137,8 +137,8 @@ else ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") - IFS=" " read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u | tr "\n" " ")" - IFS=" " read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort | uniq -u | tr "\n" " ")" + IFS=$'\n' read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u)" + IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort -u)" OTHER_MODIFIED=$(printf "%s\n" "${OTHER_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') @@ -160,8 +160,8 @@ else OTHER_DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") - IFS=" " read -r -a UNIQUE_DELETED_ARRAY <<< "$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u | tr "\n" " ")" - IFS=" " read -r -a OTHER_DELETED_ARRAY <<< "$(echo "${OTHER_DELETED[@]}" "${UNIQUE_DELETED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort | uniq -u | tr "\n" " ")" + IFS=$'\n' read -r -a UNIQUE_DELETED_ARRAY <<< "$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u)" + IFS=$'\n' read -r -a OTHER_DELETED_ARRAY <<< "$(echo "${OTHER_DELETED[@]}" "${UNIQUE_DELETED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort -u)" OTHER_DELETED=$(printf "%s\n" "${OTHER_DELETED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') From be77f8f40330fd797265bffbef097ad2abe662e2 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 17:17:58 -0400 Subject: [PATCH 05/13] Updated entrypoint.sh --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index b4a5e021ebf..00c35331a36 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -138,7 +138,7 @@ else ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") IFS=$'\n' read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u)" - IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort -u)" + IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | xargs printf "%s\n" | sort | uniq -u)" OTHER_MODIFIED=$(printf "%s\n" "${OTHER_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') From db51c5d9a046e8deeb2e60b44025e3bd817ae466 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 17:28:42 -0400 Subject: [PATCH 06/13] Updated entrypoint.sh --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 00c35331a36..be0cdbade76 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -138,7 +138,7 @@ else ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") IFS=$'\n' read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u)" - IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(echo "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | xargs printf "%s\n" | sort | uniq -u)" + IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | sort | uniq -u)" OTHER_MODIFIED=$(printf "%s\n" "${OTHER_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') From 726402a86a6013d9c2168b7bd8e902f7bc481fc8 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 17:43:23 -0400 Subject: [PATCH 07/13] Update test new.txt --- test/test new.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test new.txt b/test/test new.txt index df6938c7e08..9f4b6d8bfea 100644 --- a/test/test new.txt +++ b/test/test new.txt @@ -1 +1 @@ -This is a test for filenames with spaces +This is a test file From 8b92cd7b4cbe8cdb06ef294c709f94bb841eb251 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Thu, 21 Oct 2021 21:42:55 -0400 Subject: [PATCH 08/13] Added debug line. --- entrypoint.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/entrypoint.sh b/entrypoint.sh index be0cdbade76..e2611c0986b 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -137,6 +137,17 @@ else ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") + echo "ADDED: $ADDED" + echo "COPIED: $COPIED" + echo "DELETED: $DELETED" + echo "MODIFIED: $MODIFIED" + echo "TYPE_CHANGED: $TYPE_CHANGED" + echo "UNMERGED: $UNMERGED" + echo "UNKNOWN: $UNKNOWN" + echo "ALL_CHANGED_AND_MODIFIED: $ALL_CHANGED_AND_MODIFIED" + echo "ALL_MODIFIED: $ALL_MODIFIED" + echo "ALL_OTHER_MODIFIED: $ALL_OTHER_MODIFIED" + IFS=$'\n' read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u)" IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | sort | uniq -u)" From 1a360d66876e27423375341700d30606ce871182 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Sat, 23 Oct 2021 08:27:49 -0400 Subject: [PATCH 09/13] Updated script to support spaces. --- entrypoint.sh | 146 ++++++++++++++++++++++---------------------------- 1 file changed, 64 insertions(+), 82 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index e2611c0986b..3d667cd02b5 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -77,120 +77,102 @@ if [[ -z "${INPUT_FILES[*]}" ]]; then ALL_CHANGED_AND_MODIFIED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') ALL_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') else - ADDED_ARRAY=() - COPIED_ARRAY=() - DELETED_ARRAY=() - MODIFIED_ARRAY=() - RENAMED_ARRAY=() - TYPE_CHANGED_ARRAY=() - UNMERGED_ARRAY=() - UNKNOWN_ARRAY=() - ALL_CHANGED_AND_MODIFIED_ARRAY=() - ALL_MODIFIED_ARRAY=() + ADDED="" + COPIED="" + DELETED="" + MODIFIED="" + RENAMED="" + TYPE_CHANGED="" + UNMERGED="" + UNKNOWN="" + ALL_CHANGED_AND_MODIFIED="" + ALL_MODIFIED="" echo "Input files: ${INPUT_FILES[*]}" for path in ${INPUT_FILES} do echo "Checking for file changes: \"${path}\"..." - IFS=" " read -r -a ADDED_CURRENT_ARRAY <<< "$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - ADDED_ARRAY=("${ADDED_ARRAY[@]}" "${ADDED_CURRENT_ARRAY[@]}") - - IFS=" " read -r -a COPIED_CURRENT_ARRAY <<< "$(git diff --diff-filter=C --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - COPIED_ARRAY=("${COPIED_ARRAY[@]}" "${COPIED_CURRENT_ARRAY[@]}") - - IFS=" " read -r -a DELETED_CURRENT_ARRAY <<< "$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - DELETED_ARRAY=("${DELETED_ARRAY[@]}" "${DELETED_CURRENT_ARRAY[@]}") - - IFS=" " read -r -a MODIFIED_CURRENT_ARRAY <<< "$(git diff --diff-filter=M --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - MODIFIED_ARRAY=("${MODIFIED_ARRAY[@]}" "${MODIFIED_CURRENT_ARRAY[@]}") - - IFS=" " read -r -a RENAMED_CURRENT_ARRAY <<< "$(git diff --diff-filter=R --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - RENAMED_ARRAY=("${RENAMED_ARRAY[@]}" "${RENAMED_CURRENT_ARRAY[@]}") - - IFS=" " read -r -a TYPE_CHANGED_CURRENT_ARRAY <<< "$(git diff --diff-filter=T --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - TYPE_CHANGED_ARRAY=("${TYPE_CHANGED_ARRAY[@]}" "${TYPE_CHANGED_CURRENT_ARRAY[@]}") - - IFS=" " read -r -a UNMERGED_CURRENT_ARRAY <<< "$(git diff --diff-filter=U --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - UNMERGED_ARRAY=("${UNMERGED_ARRAY[@]}" "${UNMERGED_CURRENT_ARRAY[@]}") + ADDED+=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + COPIED+=$(git diff --diff-filter=C --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + DELETED+=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + MODIFIED+=$(git diff --diff-filter=M --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + RENAMED+=$(git diff --diff-filter=R --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + TYPE_CHANGED+=$(git diff --diff-filter=T --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + UNMERGED+=$(git diff --diff-filter=U --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + UNKNOWN+=$(git diff --diff-filter=X --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + ALL_CHANGED_AND_MODIFIED+=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + ALL_MODIFIED+=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + done - IFS=" " read -r -a UNKNOWN_CURRENT_ARRAY <<< "$(git diff --diff-filter=X --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - UNKNOWN_ARRAY=("${UNKNOWN_ARRAY[@]}" "${UNKNOWN_CURRENT_ARRAY[@]}") + ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNIQUE_ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - IFS=" " read -r -a ALL_CHANGED_AND_MODIFIED_CURRENT_ARRAY <<< "$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - ALL_CHANGED_AND_MODIFIED_ARRAY=("${ALL_CHANGED_AND_MODIFIED_ARRAY[@]}" "${ALL_CHANGED_AND_MODIFIED_CURRENT_ARRAY[@]}") + if [[ -n $ALL_OTHER_MODIFIED ]]; then + if [[ -n "$UNIQUE_ALL_MODIFIED" ]]; then + OTHER_MODIFIED=$(echo "${ALL_OTHER_MODIFIED}|${UNIQUE_ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort | uniq -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + else + OTHER_MODIFIED=$ALL_OTHER_MODIFIED + fi + fi - IFS=" " read -r -a ALL_MODIFIED_CURRENT_ARRAY <<< "$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | xargs -0 || true)" - ALL_MODIFIED_ARRAY=("${ALL_MODIFIED_ARRAY[@]}" "${ALL_MODIFIED_CURRENT_ARRAY[@]}") - done + echo "Matching modified files: ${UNIQUE_ALL_MODIFIED}" - ADDED=$(printf "%s\n" "${ADDED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - COPIED=$(printf "%s\n" "${COPIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - DELETED=$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - MODIFIED=$(printf "%s\n" "${MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - RENAMED=$(printf "%s\n" "${RENAMED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - TYPE_CHANGED=$(printf "%s\n" "${TYPE_CHANGED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - UNMERGED=$(printf "%s\n" "${UNMERGED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - UNKNOWN=$(printf "%s\n" "${UNKNOWN_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_CHANGED_AND_MODIFIED=$(printf "%s\n" "${ALL_CHANGED_AND_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - ALL_MODIFIED=$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - - ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") - - echo "ADDED: $ADDED" - echo "COPIED: $COPIED" - echo "DELETED: $DELETED" - echo "MODIFIED: $MODIFIED" - echo "TYPE_CHANGED: $TYPE_CHANGED" - echo "UNMERGED: $UNMERGED" - echo "UNKNOWN: $UNKNOWN" - echo "ALL_CHANGED_AND_MODIFIED: $ALL_CHANGED_AND_MODIFIED" - echo "ALL_MODIFIED: $ALL_MODIFIED" - echo "ALL_OTHER_MODIFIED: $ALL_OTHER_MODIFIED" - - IFS=$'\n' read -r -a UNIQUE_ALL_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_MODIFIED_ARRAY[@]}" | sort -u)" - IFS=$'\n' read -r -a OTHER_MODIFIED_ARRAY <<< "$(printf "%s\n" "${ALL_OTHER_MODIFIED[@]}" "${UNIQUE_ALL_MODIFIED_ARRAY[@]}" | sort | uniq -u)" - - OTHER_MODIFIED=$(printf "%s\n" "${OTHER_MODIFIED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') - - echo "Matching modified files: ${UNIQUE_ALL_MODIFIED_ARRAY[*]}" - - if [[ -n "${UNIQUE_ALL_MODIFIED_ARRAY[*]}" ]]; then + if [[ -n "${UNIQUE_ALL_MODIFIED}" ]]; then echo "::set-output name=any_changed::true" else echo "::set-output name=any_changed::false" fi - if [[ -n "${OTHER_MODIFIED_ARRAY[*]}" ]]; then - echo "Non Matching modified files: ${OTHER_MODIFIED_ARRAY[*]}" + OTHER_MODIFIED=$(echo "${OTHER_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + + if [[ -n "${OTHER_MODIFIED}" ]]; then + echo "Non Matching modified files: ${OTHER_MODIFIED}" echo "::set-output name=only_changed::false" echo "::set-output name=other_changed_files::$OTHER_MODIFIED" - elif [[ -n "${UNIQUE_ALL_MODIFIED_ARRAY[*]}" ]]; then + elif [[ -n "${UNIQUE_ALL_MODIFIED}" ]]; then echo "::set-output name=only_changed::true" fi - OTHER_DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA") - - IFS=$'\n' read -r -a UNIQUE_DELETED_ARRAY <<< "$(printf "%s\n" "${DELETED_ARRAY[@]}" | sort -u)" - IFS=$'\n' read -r -a OTHER_DELETED_ARRAY <<< "$(echo "${OTHER_DELETED[@]}" "${UNIQUE_DELETED_ARRAY[@]}" | xargs -0 printf "%s\n" | sort -u)" + ALL_OTHER_DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNIQUE_ALL_DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') - OTHER_DELETED=$(printf "%s\n" "${OTHER_DELETED_ARRAY[@]}" | sort -u | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + if [[ -n $ALL_OTHER_DELETED ]]; then + if [[ -n "$UNIQUE_ALL_DELETED" ]]; then + OTHER_DELETED=$(echo "${ALL_OTHER_DELETED}|${UNIQUE_ALL_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort | uniq -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + else + OTHER_DELETED=$ALL_OTHER_DELETED + fi + fi - echo "Matching deleted files: ${UNIQUE_DELETED_ARRAY[*]}" + echo "Matching deleted files: ${UNIQUE_ALL_DELETED}" - if [[ -n "${UNIQUE_DELETED_ARRAY[*]}" ]]; then + if [[ -n "${UNIQUE_ALL_DELETED}" ]]; then echo "::set-output name=any_deleted::true" else echo "::set-output name=any_deleted::false" fi - if [[ -n "${OTHER_DELETED_ARRAY[*]}" ]]; then - echo "Non Matching deleted files: ${OTHER_DELETED_ARRAY[*]}" + OTHER_DELETED=$(echo "${OTHER_DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + + if [[ -n "${OTHER_DELETED}" ]]; then + echo "Non Matching deleted files: ${OTHER_DELETED}" echo "::set-output name=only_deleted::false" echo "::set-output name=other_deleted_files::$OTHER_DELETED" - elif [[ -n "${UNIQUE_DELETED_ARRAY[*]}" ]]; then + elif [[ -n "${UNIQUE_ALL_DELETED}" ]]; then echo "::set-output name=only_deleted::true" fi + + ADDED=$(echo "${ADDED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + COPIED=$(echo "${COPIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + DELETED=$(echo "${DELETED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + MODIFIED=$(echo "${MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + RENAMED=$(echo "${RENAMED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + TYPE_CHANGED=$(echo "${TYPE_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + UNMERGED=$(echo "${UNMERGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + UNKNOWN=$(echo "${UNKNOWN}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED_AND_MODIFIED=$(echo "${ALL_CHANGED_AND_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') fi echo "Added files: $ADDED" From 142c6037f84d193998da66e6b87fe1ad171e2baf Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Sat, 23 Oct 2021 09:03:07 -0400 Subject: [PATCH 10/13] Updated script to support spaces. --- entrypoint.sh | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 3d667cd02b5..c364e7e8d3d 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -77,33 +77,22 @@ if [[ -z "${INPUT_FILES[*]}" ]]; then ALL_CHANGED_AND_MODIFIED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') ALL_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="$INPUT_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}') else - ADDED="" - COPIED="" - DELETED="" - MODIFIED="" - RENAMED="" - TYPE_CHANGED="" - UNMERGED="" - UNKNOWN="" - ALL_CHANGED_AND_MODIFIED="" - ALL_MODIFIED="" echo "Input files: ${INPUT_FILES[*]}" - for path in ${INPUT_FILES} - do - echo "Checking for file changes: \"${path}\"..." - ADDED+=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - COPIED+=$(git diff --diff-filter=C --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - DELETED+=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - MODIFIED+=$(git diff --diff-filter=M --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - RENAMED+=$(git diff --diff-filter=R --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - TYPE_CHANGED+=$(git diff --diff-filter=T --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - UNMERGED+=$(git diff --diff-filter=U --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - UNKNOWN+=$(git diff --diff-filter=X --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - ALL_CHANGED_AND_MODIFIED+=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - ALL_MODIFIED+=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${path})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - done + FILES=$(echo "${INPUT_FILES[*]}" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + + echo "Checking for file changes: \"${FILES}\"..." + ADDED=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + COPIED=$(git diff --diff-filter=C --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + MODIFIED=$(git diff --diff-filter=M --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + RENAMED=$(git diff --diff-filter=R --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + TYPE_CHANGED=$(git diff --diff-filter=T --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + UNMERGED=$(git diff --diff-filter=U --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + UNKNOWN=$(git diff --diff-filter=X --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + ALL_CHANGED_AND_MODIFIED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + ALL_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') UNIQUE_ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') From 3530901dc82908457e92a28171bd82135b6ee331 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Sat, 23 Oct 2021 09:14:29 -0400 Subject: [PATCH 11/13] Updated script to support spaces. --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index c364e7e8d3d..4d997b8d578 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -80,7 +80,7 @@ else echo "Input files: ${INPUT_FILES[*]}" - FILES=$(echo "${INPUT_FILES[*]}" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + FILES=$(printf '%s\n' "${INPUT_FILES[@]}" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') echo "Checking for file changes: \"${FILES}\"..." ADDED=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) From 611bfcf0e3fbce9b83d621e079b0db65ef74da61 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Sat, 23 Oct 2021 09:15:33 -0400 Subject: [PATCH 12/13] Removed unused non 0 exit --- entrypoint.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 4d997b8d578..4e24e6bdb51 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -83,16 +83,16 @@ else FILES=$(printf '%s\n' "${INPUT_FILES[@]}" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') echo "Checking for file changes: \"${FILES}\"..." - ADDED=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - COPIED=$(git diff --diff-filter=C --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - MODIFIED=$(git diff --diff-filter=M --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - RENAMED=$(git diff --diff-filter=R --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - TYPE_CHANGED=$(git diff --diff-filter=T --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - UNMERGED=$(git diff --diff-filter=U --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - UNKNOWN=$(git diff --diff-filter=X --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - ALL_CHANGED_AND_MODIFIED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) - ALL_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' || true) + ADDED=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + COPIED=$(git diff --diff-filter=C --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + DELETED=$(git diff --diff-filter=D --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + MODIFIED=$(git diff --diff-filter=M --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + RENAMED=$(git diff --diff-filter=R --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + TYPE_CHANGED=$(git diff --diff-filter=T --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNMERGED=$(git diff --diff-filter=U --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + UNKNOWN=$(git diff --diff-filter=X --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_CHANGED_AND_MODIFIED=$(git diff --diff-filter="*ACDMRTUX" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + ALL_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') ALL_OTHER_MODIFIED=$(git diff --diff-filter="ACMR" --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') UNIQUE_ALL_MODIFIED=$(echo "${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') From 38ace1efce9817b129df41bcfafa1be1e914ba60 Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Sat, 23 Oct 2021 09:23:20 -0400 Subject: [PATCH 13/13] Fixed error with space conversion --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 4e24e6bdb51..c7232cefeb7 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -80,7 +80,7 @@ else echo "Input files: ${INPUT_FILES[*]}" - FILES=$(printf '%s\n' "${INPUT_FILES[@]}" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') + FILES=$(echo "${INPUT_FILES[*]}" | awk '{gsub(/ /,"\n"); print $0;}' | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}') echo "Checking for file changes: \"${FILES}\"..." ADDED=$(git diff --diff-filter=A --name-only "$PREVIOUS_SHA" "$CURRENT_SHA" | grep -E "(${FILES})" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')