mirror of https://github.com/openXC7/prjxray.git
Add license check step to Travis
Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com> Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
This commit is contained in:
parent
c66f4f4aa1
commit
631b07b387
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo
|
||||
echo "==========================="
|
||||
echo "Check SPDX identifier"
|
||||
echo "==========================="
|
||||
echo
|
||||
|
||||
ERROR_FILES=""
|
||||
FILES_TO_CHECK=`find . \
|
||||
-size +0 -type f \( -name '*.sh' -o -name '*.py' -o -name 'Makefile' -o -name '*.tcl' \) \
|
||||
\( -not -path "*/.*/*" -not -path "*/third_party/*" -not -path "*/database/*" -not -path "*/env/*" \)`
|
||||
|
||||
for file in $FILES_TO_CHECK; do
|
||||
echo "Checking $file"
|
||||
grep -q "SPDX-License-Identifier" $file || ERROR_FILES="$ERROR_FILES $file"
|
||||
done
|
||||
|
||||
if [ ! -z "$ERROR_FILES" ]; then
|
||||
for file in $ERROR_FILES; do
|
||||
echo "ERROR: $file does not have license information."
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "==========================="
|
||||
echo "Check third party LICENSE"
|
||||
echo "==========================="
|
||||
echo
|
||||
|
||||
function check_if_submodule {
|
||||
for submodule in `git submodule --quiet foreach 'echo $sm_path'`; do
|
||||
if [ "$1" == "$submodule" ]; then
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
THIRD_PARTY_DIRS=""
|
||||
if [[ -e third_party ]]; then
|
||||
THIRD_PARTY_DIRS=`ls third_party --ignore=reformat.tcl --ignore cctz --ignore gflags --ignore yosys `
|
||||
fi
|
||||
ERROR_NO_LICENSE=""
|
||||
|
||||
for dir in $THIRD_PARTY_DIRS; do
|
||||
# Checks if we are not in a submodule
|
||||
if check_if_submodule $dir; then
|
||||
echo "Checking third_party/$dir"
|
||||
[ -f third_party/$dir/LICENSE ] || ERROR_NO_LICENSE="$ERROR_NO_LICENSE $dir"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -z "$ERROR_NO_LICENSE" ]; then
|
||||
for dir in $ERROR_NO_LICENSE; do
|
||||
echo "ERROR: $dir does not have the LICENSE file."
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo
|
||||
echo "==================================="
|
||||
echo "Check python utf coding and shebang"
|
||||
echo "==================================="
|
||||
echo
|
||||
|
||||
ERROR_FILES_SHEBANG=""
|
||||
ERROR_FILES_UTF_CODING=""
|
||||
FILES_TO_CHECK=`find . \
|
||||
-size +0 -type f \( -name '*.py' \) \
|
||||
\( -not -path "*/.*/*" -not -path "*/third_party/*" -not -path "*/env/*" \)`
|
||||
|
||||
for file in $FILES_TO_CHECK; do
|
||||
echo "Checking $file"
|
||||
if [[ -x $file ]]; then
|
||||
grep -q "\#\!/usr/bin/env python3" $file || ERROR_FILES_SHEBANG="$ERROR_FILES_SHEBANG $file"
|
||||
fi
|
||||
grep -q "\#.*coding: utf-8" $file || ERROR_FILES_UTF_CODING="$ERROR_FILES_UTF_CODING $file"
|
||||
done
|
||||
|
||||
if [ ! -z "$ERROR_FILES_SHEBANG" ]; then
|
||||
for file in $ERROR_FILES_SHEBANG; do
|
||||
echo "ERROR: $file does not have the python3 shebang."
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ ! -z "$ERROR_FILES_UTF_CODING" ]; then
|
||||
for file in $ERROR_FILES_UTF_CODING; do
|
||||
echo "ERROR: $file does not have the utf encoding set."
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo
|
||||
|
|
@ -32,3 +32,8 @@ jobs:
|
|||
script:
|
||||
- make format
|
||||
- test $(git status --porcelain | wc -l) -eq 0 || { git diff; false; }
|
||||
|
||||
- name: "License Checks"
|
||||
script:
|
||||
- source .github/check_license.sh
|
||||
- source .github/check_python_scripts.sh
|
||||
|
|
|
|||
Loading…
Reference in New Issue