mirror of
https://github.com/super-linter/super-linter.git
synced 2024-12-22 15:22:16 -05:00
d929d049cb
The https://github.com/super-linter/super-linter/pull/6113 introduced new Git merge conflicts linter check, that is error prone in some conditions (see screenshot). This PR adjusts this check to be more precise and exact in a way that all three markers should be found to identify check as failed. Additionally improve Git merge conflict markers matchers. Co-authored-by: Marco Ferrari <ferrari.marco@gmail.com>
31 lines
629 B
Bash
Executable file
31 lines
629 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
GIT_MERGE_CONFLICT_START='^<{7} .+$'
|
|
GIT_MERGE_CONFLICT_MIDST='^={7}$'
|
|
GIT_MERGE_CONFLICT_END='^>{7} .+$'
|
|
|
|
if [[ "$*" == "--version" ]]; then
|
|
echo "1.0.0"
|
|
exit 0
|
|
fi
|
|
|
|
declare -i errors=0
|
|
|
|
for file in "$@"; do
|
|
if grep -q -E "${GIT_MERGE_CONFLICT_START}" "$file" &&
|
|
grep -q -E "${GIT_MERGE_CONFLICT_MIDST}" "$file" &&
|
|
grep -q -E "${GIT_MERGE_CONFLICT_END}" "$file"; then
|
|
echo "Found Git merge conflict markers: \"$file\""
|
|
errors=$((errors + 1))
|
|
fi
|
|
done
|
|
|
|
if [[ $errors -gt 0 ]]; then
|
|
exit 1
|
|
else
|
|
echo "No merge conflicts found in $*"
|
|
fi
|