From cdc63f6fcdd69e65477845b4dda52fb62c8853f3 Mon Sep 17 00:00:00 2001 From: Vulpovile Date: Sat, 11 Jan 2025 15:20:44 -0800 Subject: [PATCH] Fix jenkinsfile --- Jenkinsfile | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f868094..6569979 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,25 +7,38 @@ pipeline { script { // Check for spaces or mixed indentation sh ''' - FILE_EXTENSIONS="css json js java py ps1 cs cmd bat htm html cpp c h hpp" + FILETYPES="css|json|js|java|py|ps1|cs|cmd|bat|htm|html|cpp|c|h|hpp" # Convert FILE_EXTENSIONS to --include pattern - INCLUDE_PATTERNS=$(echo $FILE_EXTENSIONS | sed 's/ /,*./g; s/^/*./') + + FILES=$(find . -regextype awk -regex '.*($FILETYPES)' -type f) - echo "Checking for lines starting with spaces in $FILE_EXTENSIONS files..." - grep -nrP '^[ ]+' --include="$INCLUDE_PATTERNS" . | sed 's/\\([^:]*\\):\\([^:]*\\):\\([ ]*\\).*/File: \\1, Line: \\2, Found: \\3/' || echo "No lines with spaces found." + # Initialize the PROBLEMS variable + PROBLEMS="" - echo "Checking for lines with mixed tabs and spaces in $FILE_EXTENSIONS files..." - grep -nrP '^\t+ +' --include="$INCLUDE_PATTERNS" . | sed 's/\\([^:]*\\):\\([^:]*\\):\\(\\t* +\\).*/File: \\1, Line: \\2, Found: \\3/' || echo "No lines with mixed indentation found." + echo "$FILES" | while IFS= read -r file; do + # Check for lines with spaces + GREP_RESULT=$(grep -nrP '^[ ]+' "$file" | sed 's/\([^:]*\):\([^:]*\):\([ ]*\).*/File: \1, Line: \2, Found: \3/') + if [ -n "$GREP_RESULT" ]; then + PROBLEMS="$PROBLEMS$GREP_RESULT"$'\n' # Append the result to PROBLEMS + fi - if grep -nrP '^[ ]+' --include="$INCLUDE_PATTERNS" . || \ - grep -nrP '^\t+ +' --include="$INCLUDE_PATTERNS" .; then - echo "Indentation issues detected. Please fix the above lines." - exit 1 - else - echo "No indentation issues detected." - exit 0 - fi + # Check for lines with mixed tabs and spaces + GREP_RESULT=$(grep -nrP '^\t+ +' "$file" | sed 's/\([^:]*\):\([^:]*\):\([ ]*\).*/File: \1, Line: \2, Found: \3/') + if [ -n "$GREP_RESULT" ]; then + PROBLEMS="$PROBLEMS$GREP_RESULT"$'\n' # Append the result to PROBLEMS + fi + done + + # Check if there were any problems + if [ -n "$PROBLEMS" ]; then + echo "Indentation issues detected. Please fix the above lines." + echo "$PROBLEMS" + exit 1 + else + echo "No indentation issues detected." + exit 0 + fi ''' } }