mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 09:46:02 +02:00
Bug 540373: Add a code cleanliness check script
Change-Id: Ib665e551469e512193ecdf36bd31667ea38408ea
This commit is contained in:
parent
8e811ccbd0
commit
1903ae1acd
5 changed files with 80 additions and 36 deletions
3
.gitattributes
vendored
3
.gitattributes
vendored
|
@ -76,7 +76,9 @@ package-list text
|
||||||
*.xpm binary
|
*.xpm binary
|
||||||
|
|
||||||
# Java/Eclipse
|
# Java/Eclipse
|
||||||
|
# remove trailing whitespace
|
||||||
*.java text
|
*.java text
|
||||||
|
# remove trailing whitespace
|
||||||
*.properties text
|
*.properties text
|
||||||
.api_filters text
|
.api_filters text
|
||||||
.classpath text
|
.classpath text
|
||||||
|
@ -86,6 +88,7 @@ package-list text
|
||||||
*.ini text
|
*.ini text
|
||||||
*.launch text
|
*.launch text
|
||||||
*.mappings text
|
*.mappings text
|
||||||
|
# remove trailing whitespace
|
||||||
*.MF text
|
*.MF text
|
||||||
.options text
|
.options text
|
||||||
*.options text
|
*.options text
|
||||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.nfs*
|
.nfs*
|
||||||
.polyglot.build.properties
|
.polyglot.build.properties
|
||||||
|
check_code_cleanliness_workspace/
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for i in `find . -name .project`; do
|
|
||||||
d=`dirname $i`;
|
|
||||||
if test ! -e $d/feature.xml; then
|
|
||||||
mkdir -p $d/.settings
|
|
||||||
cp core/org.eclipse.cdt.core/.settings/org.eclipse.jdt.* core/org.eclipse.cdt.core/.settings/org.eclipse.pde.* $d/.settings
|
|
||||||
# For test plug-ins, don't warn on missing NLS
|
|
||||||
if echo $i | grep '\.tests[/\.]' > /dev/null; then
|
|
||||||
sed -i '-es@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore@' $d/.settings/org.eclipse.jdt.core.prefs
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
76
releng/scripts/check_code_cleanliness.sh
Executable file
76
releng/scripts/check_code_cleanliness.sh
Executable file
|
@ -0,0 +1,76 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
###
|
||||||
|
# This script is run automatically as part of gerrit validation jobs
|
||||||
|
# to ensure that coding standards have been followed. It can also be
|
||||||
|
# used to make code follow standards again.
|
||||||
|
#
|
||||||
|
# The overall design is to apply a number of fixes (formatting, trim
|
||||||
|
# whitespace, etc) and then check if there are any modifications
|
||||||
|
# in git.
|
||||||
|
###
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
##
|
||||||
|
# Format code
|
||||||
|
##
|
||||||
|
: ${ECLIPSE:=~/buildtools/eclipse-SDK-4.9/eclipse}
|
||||||
|
test ! -e check_code_cleanliness_workspace
|
||||||
|
${ECLIPSE} \
|
||||||
|
-consolelog -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter \
|
||||||
|
-config $PWD/core/org.eclipse.cdt.core/.settings/org.eclipse.jdt.core.prefs \
|
||||||
|
$PWD -data check_code_cleanliness_workspace
|
||||||
|
rm -rf check_code_cleanliness_workspace
|
||||||
|
|
||||||
|
##
|
||||||
|
# Remove trailing whitespace.
|
||||||
|
# The .gitattributes is used as a filter to identify files to check. Patters with
|
||||||
|
# this "# check trailing whitespace" on the line before are checked
|
||||||
|
##
|
||||||
|
awk '/# remove trailing whitespace/{getline; print $1}' .gitattributes | \
|
||||||
|
while read i ; do \
|
||||||
|
echo "Removing trailing whitespace on $i files"
|
||||||
|
find . ! -path "./.git/*" -type f -name "$i" -exec sed -i 's/[ \t]*$//' {} +; \
|
||||||
|
done
|
||||||
|
|
||||||
|
##
|
||||||
|
# Add all file types to .gitattributes
|
||||||
|
##
|
||||||
|
find . ! -path "./.git/*" -type f -printf "%f\n" | sed -E -e 's/.+\./\\\*\\./' | sort -u | while read i ; do
|
||||||
|
if ! grep "^$i " .gitattributes > /dev/null
|
||||||
|
then
|
||||||
|
echo "MISSING $i in .gitattributes, adding as text, check if that is correct"
|
||||||
|
echo "$i text # automatically added - please verify" >> .gitattributes
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
##
|
||||||
|
# Copy JDT/PDE preferences
|
||||||
|
##
|
||||||
|
find . ! -path "./.git/*" -name .project ! -path './core/org.eclipse.cdt.core/.project' | while read i ; do
|
||||||
|
d=`dirname $i`;
|
||||||
|
if test ! -e $d/feature.xml; then
|
||||||
|
mkdir -p $d/.settings
|
||||||
|
cp core/org.eclipse.cdt.core/.settings/org.eclipse.jdt.* core/org.eclipse.cdt.core/.settings/org.eclipse.pde.* $d/.settings
|
||||||
|
# For test plug-ins, don't warn on missing NLS
|
||||||
|
if echo $i | grep '\.tests[/\.]' > /dev/null; then
|
||||||
|
sed -i '-es@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning@org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore@' $d/.settings/org.eclipse.jdt.core.prefs
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
##
|
||||||
|
# Check that none of the above caused any changes
|
||||||
|
##
|
||||||
|
if test -z "$(git status -s)"; then
|
||||||
|
echo "Tree looks clean!"
|
||||||
|
else
|
||||||
|
echo "Tree is dirty - something needs to be cleaned up in your commit"
|
||||||
|
echo "Result of git status"
|
||||||
|
git status
|
||||||
|
echo "Result of git diff"
|
||||||
|
git diff
|
||||||
|
echo "Tree is dirty - something needs to be cleaned up in your commit (see above for git status/diff)"
|
||||||
|
exit 1
|
||||||
|
fi
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Print out how many of each file extension there is
|
|
||||||
# find . ! -path "./.git/*" -type f -printf "%f\n" | sed -E -e 's/.+\./\*./' | sort -u | while read i; do find . ! -path "./.git/*" -name $i | wc -l | tr -d '\n'; echo " : $i" ; done | sort -n
|
|
||||||
|
|
||||||
# Print out all the unique file extensions, including unique names with no extension
|
|
||||||
# Each of these should be in .gitattributes
|
|
||||||
# find . ! -path "./.git/*" -type f -printf "%f\n" | sed -E -e 's/.+\./\*./' | sort -u
|
|
||||||
|
|
||||||
find . ! -path "./.git/*" -type f -printf "%f\n" | sed -E -e 's/.+\./\\\*\\./' | sort -u | while read i
|
|
||||||
do
|
|
||||||
echo -n "Checking $i in .gitattributes: "
|
|
||||||
if grep "^$i " .gitattributes
|
|
||||||
then
|
|
||||||
echo "Found"
|
|
||||||
else
|
|
||||||
echo MISSING $i in .gitattributes. List of file:
|
|
||||||
find . ! -path "./.git/*" -type f -name "$i"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue