serenity/Meta/check-style.sh
Emanuele Torre f128d3baf7 Meta: make check-style.sh ignore Libraries/LibCore/puff.cpp
This file was formerly named `Libraries/LibCore/puff.c` and it was not
checked by `check-style.sh` because it only checks .h and .cpp files.

Since this file was not written by us, we shouldn't check its style.

This file was also causing our Travis builds to fail.
2020-07-29 17:36:21 +02:00

58 lines
1.7 KiB
Bash
Executable file

#!/bin/bash
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "$script_path/.." || exit 1
# We simply check if the file starts with:
# /*
# * Copyright
LICENSE_HEADER_PATTERN=$'^/\*\n \* Copyright'
MISSING_LICENSE_HEADER_ERRORS=()
# We check that "#pragma once" is present
PRAGMA_ONCE_PATTERN='#pragma once'
MISSING_PRAGMA_ONCE_ERRORS=()
# We make sure that there's a blank line before and after pragma once
GOOD_PRAGMA_ONCE_PATTERN=$'(^|\\S\n\n)#pragma once(\n\n\\S.|$)'
BAD_PRAGMA_ONCE_ERRORS=()
while IFS= read -r f; do
file_content="$(< "$f")"
if [[ ! "$file_content" =~ $LICENSE_HEADER_PATTERN ]]; then
MISSING_LICENSE_HEADER_ERRORS+=("$f")
fi
if [[ "$f" =~ \.h$ ]]; then
if [[ ! "$file_content" =~ $PRAGMA_ONCE_PATTERN ]]; then
MISSING_PRAGMA_ONCE_ERRORS+=("$f")
elif [[ ! "$file_content" =~ $GOOD_PRAGMA_ONCE_PATTERN ]]; then
BAD_PRAGMA_ONCE_ERRORS+=("$f")
fi
fi
done < <(git ls-files -- \
'*.cpp' \
'*.h' \
':!:Tests' \
':!:Base' \
':!:Kernel/FileSystem/ext2_fs.h' \
':!:Libraries/LibC/getopt.cpp' \
':!:Libraries/LibCore/puff.h' \
':!:Libraries/LibCore/puff.cpp' \
':!:Libraries/LibELF/exec_elf.h' \
)
exit_status=0
if (( ${#MISSING_LICENSE_HEADER_ERRORS[@]} )); then
echo "Files missing license headers: ${MISSING_LICENSE_HEADER_ERRORS[*]}"
exit_status=1
fi
if (( ${#MISSING_PRAGMA_ONCE_ERRORS[@]} )); then
echo "Header files missing \"#pragma once\": ${MISSING_PRAGMA_ONCE_ERRORS[*]}"
exit_status=1
fi
if (( ${#BAD_PRAGMA_ONCE_ERRORS[@]} )); then
echo "\"#pragma once\" should have a blank line before and after in these files: ${BAD_PRAGMA_ONCE_ERRORS[*]}"
exit_status=1
fi
exit "$exit_status"