mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Koen Zandberg
96cad82910
A number of scripts use features from bash such as `local` which are not in the POSIX spec. This breaks on systems where sh is not symlinked to bash. This patch changes the interpreter indicated by the hashbang to bash for those scripts
80 lines
1.6 KiB
Bash
Executable File
80 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright 2017 Kaspar Schleiser <kaspar@schleiser.de>
|
|
#
|
|
# This file is subject to the terms and conditions of the GNU Lesser
|
|
# General Public License v2.1. See the file LICENSE in the top level
|
|
# directory for more details.
|
|
|
|
: "${RIOTBASE:=$(cd $(dirname $0)/../../../; pwd)}"
|
|
cd $RIOTBASE
|
|
|
|
: "${RIOTTOOLS:=${RIOTBASE}/dist/tools}"
|
|
. "${RIOTTOOLS}"/ci/changed_files.sh
|
|
|
|
EXIT_CODE=0
|
|
|
|
filter() {
|
|
if [ $COCCINELLE_QUIET -eq 0 ]; then
|
|
cat
|
|
else
|
|
grep '^---' | cut -f 2 -d ' '
|
|
fi
|
|
}
|
|
|
|
indent() {
|
|
sed 's/^/ /g'
|
|
}
|
|
|
|
coccinelle_checkone() {
|
|
OUT="$(spatch --very-quiet \
|
|
--macro-file-builtins ${RIOTTOOLS}/coccinelle/include/riot-standard.h \
|
|
--sp-file $patch ${FILES} | filter)"
|
|
|
|
if [ -n "$OUT" ]; then
|
|
if [ $COCCINELLE_QUIET -eq 1 ]; then
|
|
echo "$patch:"
|
|
echo "$OUT" | indent
|
|
if [ COCCINELLE_WARNONLY -eq 0 ]; then
|
|
EXIT_CODE=1
|
|
fi
|
|
else
|
|
echo "$OUT"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
coccinelle_checkall() {
|
|
local dir="$1"
|
|
local warn="${2:-0}"
|
|
|
|
[ -d "$dir" ] || {
|
|
echo "$0: coccinelle_checkall(): $dir doesn't exist!"
|
|
exit 1
|
|
}
|
|
|
|
for patch in $dir/*; do
|
|
coccinelle_checkone $patch
|
|
done
|
|
}
|
|
|
|
: ${FILES:=$(FILEREGEX='\.c$' changed_files)}
|
|
|
|
if [ -z "${FILES}" ]; then
|
|
exit
|
|
fi
|
|
|
|
: ${COCCINELLE_QUIET:=0}
|
|
|
|
if [ -z "$*" ]; then
|
|
coccinelle_checkall "${RIOTTOOLS}"/coccinelle/force
|
|
|
|
COCCINELLE_WARNONLY=1 coccinelle_checkall "${RIOTTOOLS}"/coccinelle/warn
|
|
else
|
|
for patch in "$@"; do
|
|
coccinelle_checkone "$patch"
|
|
done
|
|
fi
|
|
|
|
exit $EXIT_CODE
|