Commit 800ad718 by Tobias Schuele

Replaced shebang /bin/bash with /usr/bin/env bash in scripts.

parent bbb3c392
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2014, Siemens AG. All rights reserved. # Copyright (c) 2014, Siemens AG. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# 1. Redistributions of source code must retain the above copyright notice, # 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, # 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
usage() { usage() {
echo "Create a tarball of the project. Specify the project root with"; echo "Create a tarball of the project. Specify the project root with";
echo "-d parameter."; echo "-d parameter.";
echo ""; echo "";
echo "Version number and project name is automatically derived from CMakeLists.txt in the project root."; echo "Version number and project name is automatically derived from CMakeLists.txt in the project root.";
echo "Tarball that will be created: [PROJECT_NAME]_[VERSION_NUMBER].tar.gz"; echo "Tarball that will be created: [PROJECT_NAME]_[VERSION_NUMBER].tar.gz";
echo "Example call (from the scripts directory as working directory):"; echo "Example call (from the scripts directory as working directory):";
echo "$0 -d ../"; echo "$0 -d ../";
echo ""; echo "";
echo "Usage: $0 [-d <root project dir>]" 1>&2; exit 1; echo "Usage: $0 [-d <root project dir>]" 1>&2; exit 1;
} }
while getopts ":d:" o; do while getopts ":d:" o; do
case "${o}" in case "${o}" in
d) d)
d=${OPTARG} d=${OPTARG}
;; ;;
*) *)
usage usage
;; ;;
esac esac
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
if [ -z "${d}" ]; then if [ -z "${d}" ]; then
usage usage
fi fi
if [ ! -d "$d" ]; then if [ ! -d "$d" ]; then
echo "Error, directory $d does not exist or is not a directory!" echo "Error, directory $d does not exist or is not a directory!"
echo "" echo ""
usage usage
fi fi
CMAKEFILE="$d/CMakeLists.txt" CMAKEFILE="$d/CMakeLists.txt"
if [ ! -f "$CMAKEFILE" ]; then if [ ! -f "$CMAKEFILE" ]; then
echo "Error, could no locate CMakeLists.txt" echo "Error, could no locate CMakeLists.txt"
echo "" echo ""
usage usage
fi fi
#derive version number from cmake script #derive version number from cmake script
VERSION_MAJOR=`cat $CMAKEFILE | grep EMBB_BASE_VERSION_MAJOR | sed "s/^[^0-9]*\([0-9]\+\)[^0-9]*$/\1/g"` VERSION_MAJOR=`cat $CMAKEFILE | grep EMBB_BASE_VERSION_MAJOR | sed "s/^[^0-9]*\([0-9]\+\)[^0-9]*$/\1/g"`
VERSION_MINOR=`cat $CMAKEFILE | grep EMBB_BASE_VERSION_MINOR | sed "s/^[^0-9]*\([0-9]\+\)[^0-9]*$/\1/g"` VERSION_MINOR=`cat $CMAKEFILE | grep EMBB_BASE_VERSION_MINOR | sed "s/^[^0-9]*\([0-9]\+\)[^0-9]*$/\1/g"`
VERSION_PATCH=`cat $CMAKEFILE | grep EMBB_BASE_VERSION_PATCH | sed "s/^[^0-9]*\([0-9]\+\)[^0-9]*$/\1/g"` VERSION_PATCH=`cat $CMAKEFILE | grep EMBB_BASE_VERSION_PATCH | sed "s/^[^0-9]*\([0-9]\+\)[^0-9]*$/\1/g"`
VERSION_NUMBER="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" VERSION_NUMBER="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
PROJECT_NAME=`cat $CMAKEFILE | grep project.*\(.*\) | sed "s/^[^(]*(\([^)]*\)).*$/\1/g" | tr '[:upper:]' '[:lower:]'` PROJECT_NAME=`cat $CMAKEFILE | grep project.*\(.*\) | sed "s/^[^(]*(\([^)]*\)).*$/\1/g" | tr '[:upper:]' '[:lower:]'`
n="${PROJECT_NAME}-${VERSION_NUMBER}" n="${PROJECT_NAME}-${VERSION_NUMBER}"
TARBALL_NAME="${n}.tar.gz" TARBALL_NAME="${n}.tar.gz"
if ! [[ $TARBALL_NAME =~ ^[a-zA-Z0-9|\.|\_|-]+$ ]]; then if ! [[ $TARBALL_NAME =~ ^[a-zA-Z0-9|\.|\_|-]+$ ]]; then
echo "Want to create tarball with name $TARBALL_NAME." >&2 echo "Want to create tarball with name $TARBALL_NAME." >&2
echo 'Filename not valid, only a-z, A-Z, .,- and _ characters are allowed' >&2 # write to stderr echo 'Filename not valid, only a-z, A-Z, .,- and _ characters are allowed' >&2 # write to stderr
exit 1 exit 1
fi fi
echo "Do you wish to create a tarball with the name $TARBALL_NAME in the current directory?" echo "Do you wish to create a tarball with the name $TARBALL_NAME in the current directory?"
select yn in "Yes" "No"; do select yn in "Yes" "No"; do
case $yn in case $yn in
Yes ) break;; Yes ) break;;
No ) echo Leaving tarball creation; exit;; No ) echo Leaving tarball creation; exit;;
esac esac
done done
if [ -f "$TARBALL_NAME" ]; then if [ -f "$TARBALL_NAME" ]; then
echo "File $TARBALL_NAME exists. Delete file?" echo "File $TARBALL_NAME exists. Delete file?"
select yn in "Yes" "No"; do select yn in "Yes" "No"; do
case $yn in case $yn in
Yes ) break;; Yes ) break;;
No ) echo Leaving tarball creation; exit;; No ) echo Leaving tarball creation; exit;;
esac esac
done done
rm $TARBALL_NAME rm $TARBALL_NAME
if [ -f "$TARBALL_NAME" ]; then if [ -f "$TARBALL_NAME" ]; then
echo "Could not delete $TARBALL_NAME" echo "Could not delete $TARBALL_NAME"
exit exit
fi fi
fi fi
MYTMPDIR=`mktemp -d` MYTMPDIR=`mktemp -d`
echo "Using temporary directory $MYTMPDIR" echo "Using temporary directory $MYTMPDIR"
trap "rm -rf $MYTMPDIR" EXIT trap "rm -rf $MYTMPDIR" EXIT
echo "Calling rsync to temporary folder" echo "Calling rsync to temporary folder"
rsync \ rsync \
--exclude ".git" \ --exclude ".git" \
--exclude ".gitignore" \ --exclude ".gitignore" \
--exclude "build*/" \ --exclude "build*/" \
--exclude "scripts/*.tar.gz" \ --exclude "scripts/*.tar.gz" \
--exclude "scripts/cpplint.py" \ --exclude "scripts/cpplint.py" \
--exclude "scripts/create_tarball.sh" \ --exclude "scripts/create_tarball.sh" \
--exclude "scripts/insert_license.sh" \ --exclude "scripts/insert_license.sh" \
--exclude "scripts/license.*" \ --exclude "scripts/license.*" \
--exclude "scripts/license_*" \ --exclude "scripts/license_*" \
--exclude "scripts/remove_license.sh" \ --exclude "scripts/remove_license.sh" \
--exclude "mtapi/MTAPI.mm" \ --exclude "mtapi/MTAPI.mm" \
--exclude ".cproject" \ --exclude ".cproject" \
--exclude ".gitattributes" \ --exclude ".gitattributes" \
--exclude ".project" \ --exclude ".project" \
--exclude "*.blg" \ --exclude "*.blg" \
--exclude "*.fls" \ --exclude "*.fls" \
--exclude "*.bbl" \ --exclude "*.bbl" \
--exclude "*.fdb_latexmk" \ --exclude "*.fdb_latexmk" \
--exclude "*.log" \ --exclude "*.log" \
--exclude "*.out" \ --exclude "*.out" \
--exclude "*.toc" \ --exclude "*.toc" \
--exclude "*.aux" \ --exclude "*.aux" \
--exclude "doc/tutorial/sty" \ --exclude "doc/tutorial/sty" \
--exclude "doc/tutorial/pics" \ --exclude "doc/tutorial/pics" \
--exclude "doc/tutorial/content" \ --exclude "doc/tutorial/content" \
--exclude "doc/tutorial/*.tex" \ --exclude "doc/tutorial/*.tex" \
--exclude "doc/tutorial/*.bib" \ --exclude "doc/tutorial/*.bib" \
--exclude "doc/reference/*.xml" \ --exclude "doc/reference/*.xml" \
--exclude "doc/reference/*.dox" \ --exclude "doc/reference/*.dox" \
--exclude "doc/reference/*.in" \ --exclude "doc/reference/*.in" \
--exclude "doc/reference/header.html" \ --exclude "doc/reference/header.html" \
--exclude "doc/reference/*.css" \ --exclude "doc/reference/*.css" \
--exclude "doc/examples/insert_snippets.py" \ --exclude "doc/examples/insert_snippets.py" \
--archive --recursive ${d} $MYTMPDIR/${n} --archive --recursive ${d} $MYTMPDIR/${n}
echo "Replace version number in README" echo "Replace version number in README"
README_FILE="$MYTMPDIR/${n}/README.txt" README_FILE="$MYTMPDIR/${n}/README.md"
if [ -f $README_FILE ]; then if [ -f $README_FILE ]; then
sed -i "s/\[VERSION_NUMBER_TEMPLATE\]/$VERSION_NUMBER/g" $README_FILE sed -i "s/\[VERSION_NUMBER_TEMPLATE\]/$VERSION_NUMBER/g" $README_FILE
fi fi
echo "Checking line endings" echo "Checking line endings"
WINLINES=`find $MYTMPDIR/${n} -not -type d -exec file "{}" ";" | grep CRLF` WINLINES=`find $MYTMPDIR/${n} -not -type d -exec file "{}" ";" | grep CRLF`
if [ -n "$WINLINES" ]; then if [ -n "$WINLINES" ]; then
echo "Detected Dos line endings in following files:" echo "Detected Dos line endings in following files:"
echo "$WINLINES" echo "$WINLINES"
echo "Warning: The project guidelines forbid Dos line endings. Continue creating tarball?" echo "Warning: The project guidelines forbid Dos line endings. Continue creating tarball?"
select yn in "Yes" "No"; do select yn in "Yes" "No"; do
case $yn in case $yn in
Yes ) break;; Yes ) break;;
No ) echo Leaving tarball creation; exit;; No ) echo Leaving tarball creation; exit;;
esac esac
done done
fi fi
echo "Calling tar" echo "Calling tar"
tar -czf $TARBALL_NAME -C $MYTMPDIR ${n} tar -czf $TARBALL_NAME -C $MYTMPDIR ${n}
echo "Done. Created $TARBALL_NAME." echo "Done. Created $TARBALL_NAME."
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2014, Siemens AG. All rights reserved. # Copyright (c) 2014, Siemens AG. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# 1. Redistributions of source code must retain the above copyright notice, # 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, # 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
usage() { usage() {
echo "Specify license file to add to each source file"; echo "Specify license file to add to each source file";
echo "and directory where to start to find files."; echo "and directory where to start to find files.";
echo "Example call:"; echo "Example call:";
echo "./insert_license.sh -d ../ -l license.txt"; echo "./insert_license.sh -d ../ -l license.txt";
echo ""; echo "";
echo "Usage: $0 [-d directory] [-l license_file]" 1>&2; exit 1; echo "Usage: $0 [-d directory] [-l license_file]" 1>&2; exit 1;
} }
while getopts ":d:l:" o; do while getopts ":d:l:" o; do
case "${o}" in case "${o}" in
d) d)
d=${OPTARG} d=${OPTARG}
;; ;;
l) l)
l=${OPTARG} l=${OPTARG}
;; ;;
*) *)
usage usage
;; ;;
esac esac
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
if [ -z "${d}" ] || [ -z "${l}" ]; then if [ -z "${d}" ] || [ -z "${l}" ]; then
usage usage
fi fi
if [ ! -d "$d" ]; then if [ ! -d "$d" ]; then
echo "Error, directory $d does not exist or is not a directory!" echo "Error, directory $d does not exist or is not a directory!"
echo "" echo ""
usage usage
fi fi
if [ ! -f "$l" ]; then if [ ! -f "$l" ]; then
echo "Error, license file $l does not exist or is not a file!" echo "Error, license file $l does not exist or is not a file!"
echo "" echo ""
usage usage
fi fi
for FILE in `find ${d} -name "*.h" -o -name "*.cc" -o -name "*.c" -o -name "*.h.in" -type f` for FILE in `find ${d} -name "*.h" -o -name "*.cc" -o -name "*.c" -o -name "*.h.in" -type f`
do do
if ! grep -q COPYRIGHT $FILE if ! grep -q COPYRIGHT $FILE
then then
echo "Inserting license to: $FILE" echo "Inserting license to: $FILE"
cat ${l} $FILE > $FILE.new && mv $FILE.new $FILE cat ${l} $FILE > $FILE.new && mv $FILE.new $FILE
fi fi
done done
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2014, Siemens AG. All rights reserved. # Copyright (c) 2014, Siemens AG. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# 1. Redistributions of source code must retain the above copyright notice, # 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, # 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
usage() { usage() {
echo "Specify license file to remove from each source file"; echo "Specify license file to remove from each source file";
echo "and directory where to start to find files."; echo "and directory where to start to find files.";
echo "License is only removed if existing."; echo "License is only removed if existing.";
echo ""; echo "";
echo "Example call:"; echo "Example call:";
echo "./remove_license.sh -d ../ -l license.txt"; echo "./remove_license.sh -d ../ -l license.txt";
echo ""; echo "";
echo "Usage: $0 [-d directory] [-l license_file]" 1>&2; exit 1; echo "Usage: $0 [-d directory] [-l license_file]" 1>&2; exit 1;
} }
while getopts ":d:l:" o; do while getopts ":d:l:" o; do
case "${o}" in case "${o}" in
d) d)
d=${OPTARG} d=${OPTARG}
;; ;;
l) l)
l=${OPTARG} l=${OPTARG}
;; ;;
*) *)
usage usage
;; ;;
esac esac
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
if [ -z "${d}" ] || [ -z "${l}" ]; then if [ -z "${d}" ] || [ -z "${l}" ]; then
usage usage
fi fi
if [ ! -d "$d" ]; then if [ ! -d "$d" ]; then
echo "Error, directory $d does not exist or is not a directory!" echo "Error, directory $d does not exist or is not a directory!"
echo "" echo ""
usage usage
fi fi
if [ ! -f "$l" ]; then if [ ! -f "$l" ]; then
echo "Error, license file $l does not exist or is not a file!" echo "Error, license file $l does not exist or is not a file!"
echo "" echo ""
usage usage
fi fi
LINES=`cat ${l} | wc -l` LINES=`cat ${l} | wc -l`
LINESP1=$(($LINES + 1)) LINESP1=$(($LINES + 1))
for FILE in `find ${d} -name "*.h" -o -name "*.cc" -o -name "*.c" -o -name "*.h.in" -type f` for FILE in `find ${d} -name "*.h" -o -name "*.cc" -o -name "*.c" -o -name "*.h.in" -type f`
do do
if grep -q COPYRIGHT $FILE if grep -q COPYRIGHT $FILE
then then
echo "Processing: $FILE" echo "Processing: $FILE"
TEMP=$(mktemp /tmp/temporary-file.XXXXXXXX) TEMP=$(mktemp /tmp/temporary-file.XXXXXXXX)
head -n $LINES $FILE > ${TEMP} head -n $LINES $FILE > ${TEMP}
if [[ ! `diff ${TEMP} ${l}` ]]; then if [[ ! `diff ${TEMP} ${l}` ]]; then
echo "Strip license from file: $FILE" echo "Strip license from file: $FILE"
tail -n +$LINESP1 $FILE > ${FILE}.new && mv ${FILE}.new ${FILE} tail -n +$LINESP1 $FILE > ${FILE}.new && mv ${FILE}.new ${FILE}
fi fi
fi fi
done done
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2014, Siemens AG. All rights reserved. # Copyright (c) 2014, Siemens AG. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# 1. Redistributions of source code must retain the above copyright notice, # 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, # 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
usage() { usage() {
echo "Run Google C++ Style Guide checking on project."; echo "Run Google C++ Style Guide checking on project.";
echo "Specify EMBB root directory with -d and the"; echo "Specify EMBB root directory with -d and the";
echo "cpplint executable with -c. If not specified"; echo "cpplint executable with -c. If not specified";
echo "it is assumed the cpplint binary is contained"; echo "it is assumed the cpplint binary is contained";
echo "in the current working directory."; echo "in the current working directory.";
echo ""; echo "";
echo "Usage: $0 [-d directory] [-c cpplint_executable] " 1>&2; exit 1; echo "Usage: $0 [-d directory] [-c cpplint_executable] " 1>&2; exit 1;
} }
while getopts ":d:c:" o; do while getopts ":d:c:" o; do
case "${o}" in case "${o}" in
d) d)
d=${OPTARG} d=${OPTARG}
;; ;;
c) c)
c=${OPTARG} c=${OPTARG}
;; ;;
*) *)
usage usage
;; ;;
esac esac
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
if [ -z "${d}" ]; then if [ -z "${d}" ]; then
usage usage
fi fi
if [ ! -d "$d" ]; then if [ ! -d "$d" ]; then
echo "Error: directory $d does not exist or is not a directory!" echo "Error: directory $d does not exist or is not a directory!"
echo "" echo ""
usage usage
fi fi
if [ -z "${c}" ]; then if [ -z "${c}" ]; then
echo "cpplint binary not specified, assuming to be contained in the current working directory!" echo "cpplint binary not specified, assuming to be contained in the current working directory!"
c="./cpplint.py" c="./cpplint.py"
fi fi
if [ ! -f "${c}" ]; then if [ ! -f "${c}" ]; then
echo "Error: cannot find cpplint script (Location: ${c})" echo "Error: cannot find cpplint script (Location: ${c})"
echo echo
usage usage
fi fi
##Excluded Rules ##Excluded Rules
EXCLUDED_RULES="-runtime/references,-runtime/int,-build/include_order,-readability/multiline_comment,-readability/streams,-readability/alt_tokens,-whitespace/comments" EXCLUDED_RULES="-runtime/references,-runtime/int,-build/include_order,-readability/multiline_comment,-readability/streams,-readability/alt_tokens,-whitespace/comments"
PARENTHESIS_RULE=",-whitespace/parens" PARENTHESIS_RULE=",-whitespace/parens"
C_CAST_RULE=",-readability/casting" C_CAST_RULE=",-readability/casting"
LONG_LINES_RULE=",-whitespace/line_length" LONG_LINES_RULE=",-whitespace/line_length"
##Excluded files ##Excluded files
RAND_FILES=( embb_mtapi_test_group.cc embb_mtapi_test_queue.cc embb_mtapi_test_task.cc queue_test-inl.h ) RAND_FILES=( embb_mtapi_test_group.cc embb_mtapi_test_queue.cc embb_mtapi_test_task.cc queue_test-inl.h )
for project in base_c mtapi_c base_cpp mtapi_cpp algorithms_cpp containers_cpp dataflow_cpp for project in base_c mtapi_c base_cpp mtapi_cpp algorithms_cpp containers_cpp dataflow_cpp
do do
echo "-> Doing project: $project" echo "-> Doing project: $project"
dir=$d/$project dir=$d/$project
if [ ! -d "$dir" ]; then if [ ! -d "$dir" ]; then
echo "Error: cannot find directory $dir for project $project" echo "Error: cannot find directory $dir for project $project"
echo echo
usage usage
fi fi
for file in `find $dir -name "*.cc" -o -name "*.h" -o -name "*inl.h" -o -name "*.c"` for file in `find $dir -name "*.cc" -o -name "*.h" -o -name "*inl.h" -o -name "*.c"`
do do
echo "--> Run cpplint on file $file" echo "--> Run cpplint on file $file"
current_rules=$EXCLUDED_RULES current_rules=$EXCLUDED_RULES
if [[ $file =~ \.h$ ]]; then if [[ $file =~ \.h$ ]]; then
current_rules+=$PARENTHESIS_RULE current_rules+=$PARENTHESIS_RULE
fi fi
if [[ $file =~ \.c$ ]] || [[ $file =~ \mtapi.h$ ]]; then if [[ $file =~ \.c$ ]] || [[ $file =~ \mtapi.h$ ]]; then
current_rules+=$C_CAST_RULE current_rules+=$C_CAST_RULE
fi fi
if [[ $file == *atomic* ]]; then if [[ $file == *atomic* ]]; then
current_rules+=$LONG_LINES_RULE current_rules+=$LONG_LINES_RULE
fi fi
############ ############
#Per file exclusion rules #Per file exclusion rules
if [[ $file == *generate_atomic_implementation_template.h ]]; then if [[ $file == *generate_atomic_implementation_template.h ]]; then
current_rules+=",-build/header_guard" # This file needs to be included multiple times current_rules+=",-build/header_guard" # This file needs to be included multiple times
fi fi
if [[ $file == *atomic.h ]]; then if [[ $file == *atomic.h ]]; then
current_rules+=",-whitespace/indent" # indention is misinterpreted for this file current_rules+=",-whitespace/indent" # indention is misinterpreted for this file
fi fi
if [[ $file == *atomic_arithmetic.h ]]; then if [[ $file == *atomic_arithmetic.h ]]; then
current_rules+=",-readability/function" # All parameters should be named in a function current_rules+=",-readability/function" # All parameters should be named in a function
fi fi
for filename in "${RAND_FILES[@]}"; do for filename in "${RAND_FILES[@]}"; do
if [[ $file =~ $filename ]]; then if [[ $file =~ $filename ]]; then
current_rules+=",-runtime/threadsafe_fn" # These tests are allowed to use the thread unsafe rand() current_rules+=",-runtime/threadsafe_fn" # These tests are allowed to use the thread unsafe rand()
fi fi
done done
python ${c} --filter=$current_rules --root="$project/include" $file python ${c} --filter=$current_rules --root="$project/include" $file
done done
done done
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2014, Siemens AG. All rights reserved. # Copyright (c) 2014, Siemens AG. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# 1. Redistributions of source code must retain the above copyright notice, # 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, # 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
# Needs to be located in the folder containing the tests!! # Needs to be located in the folder containing the tests!!
# Is copied automatically there when generating build files with cmake. # Is copied automatically there when generating build files with cmake.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
"$DIR/embb_base_c_test.exe" "$DIR/embb_base_c_test.exe"
echo echo
"$DIR/embb_base_cpp_test.exe" "$DIR/embb_base_cpp_test.exe"
echo echo
"$DIR/embb_mtapi_c_test.exe" "$DIR/embb_mtapi_c_test.exe"
echo echo
"$DIR/embb_mtapi_cpp_test.exe" "$DIR/embb_mtapi_cpp_test.exe"
echo echo
"$DIR/embb_algorithms_cpp_test.exe" "$DIR/embb_algorithms_cpp_test.exe"
echo echo
"$DIR/embb_containers_cpp_test.exe" "$DIR/embb_containers_cpp_test.exe"
echo echo
"$DIR/embb_dataflow_cpp_test.exe" "$DIR/embb_dataflow_cpp_test.exe"
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2014, Siemens AG. All rights reserved. # Copyright (c) 2014, Siemens AG. All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# 1. Redistributions of source code must retain the above copyright notice, # 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, # 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# Needs to be located in the folder containing the tests!! # Needs to be located in the folder containing the tests!!
# Is copied automatically there when generating build files with cmake. # Is copied automatically there when generating build files with cmake.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
"$DIR/embb_base_c_test" "$DIR/embb_base_c_test"
echo echo
"$DIR/embb_base_cpp_test" "$DIR/embb_base_cpp_test"
echo echo
"$DIR/embb_mtapi_c_test" "$DIR/embb_mtapi_c_test"
echo echo
"$DIR/embb_mtapi_cpp_test" "$DIR/embb_mtapi_cpp_test"
echo echo
"$DIR/embb_algorithms_cpp_test" "$DIR/embb_algorithms_cpp_test"
echo echo
"$DIR/embb_containers_cpp_test" "$DIR/embb_containers_cpp_test"
echo echo
"$DIR/embb_dataflow_cpp_test" "$DIR/embb_dataflow_cpp_test"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment