[PATCH 1/3] Add helper script to find licenses and unused files.
Christian Mauderer
christian.mauderer at embedded-brains.de
Fri Mar 29 07:17:34 UTC 2019
---
find_unused_files_and_license.sh | 106 +++++++++++++++++++++++++++++++++++++++
1 file changed, 106 insertions(+)
create mode 100755 find_unused_files_and_license.sh
diff --git a/find_unused_files_and_license.sh b/find_unused_files_and_license.sh
new file mode 100755
index 00000000..0fc61fe8
--- /dev/null
+++ b/find_unused_files_and_license.sh
@@ -0,0 +1,106 @@
+#!/bin/bash
+
+#
+# Copyright (c) 2018 embedded brains GmbH. All rights reserved.
+#
+# embedded brains GmbH
+# Dornierstr. 4
+# 82178 Puchheim
+# Germany
+# <rtems at embedded-brains.de>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 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 POSSIBILITY OF
+# SUCH DAMAGE.
+#
+
+# exit on wrong command and undefined variable
+set -e
+set -u
+set -o pipefail
+
+SCRIPTNAME=$0
+TARGET="freebsd/"
+SOURCE="freebsd-org/"
+LIST="libbsd.py"
+
+printhelp () {
+ echo ""
+ echo "Call: ${SCRIPTNAME} <options>"
+ echo "Find LICENSE files for each file in \"${TARGET}\"."
+ echo "Find all files in \"${TARGET}\" that are not in \"${LIST}\"."
+ echo "Reccomended usage:"
+ echo "./${SCRIPTNAME} | sort | uniq"
+ echo ""
+ echo "The following parameters are optional:"
+ echo " -h Print this help and exit the script."
+ echo " -v Be more verbose. Can be used multiple times."
+ exit 0
+}
+
+while getopts "hxy:v" OPTION
+do
+ case ${OPTION} in
+ h) printhelp ;;
+ \?) echo "Unknown option \"-${OPTARG}\"."
+ exit 1 ;;
+ :) echo "Option \"-${OPTARG}\" needs an argument."; exit 1 ;;
+ esac
+done
+shift $((${OPTIND} - 1))
+
+checkfile () {
+ local FILE="$1"
+ local FILE_WITHOUT_PATH=${FILE#"$TARGET"}
+ local LICENSE=""
+
+ grep "${FILE_WITHOUT_PATH}" "${LIST}" > /dev/null || \
+ echo "File not in ${LIST}: ${FILE_WITHOUT_PATH}"
+
+ local DIR="${SOURCE}`dirname ${FILE_WITHOUT_PATH}`"
+ while [ "$DIR" != "." ]
+ do
+ local MAYBELICENSE="${DIR}/LICENSE*"
+ if [ -e ${MAYBELICENSE} ]
+ then
+ LICENSE=`ls ${MAYBELICENSE}`
+ break
+ fi
+ local MAYBELICENSE="${DIR}/COPY*"
+ if [ -e ${MAYBELICENSE} ]
+ then
+ LICENSE=`ls ${MAYBELICENSE}`
+ break
+ fi
+ DIR="`dirname ${DIR}`"
+ done
+
+ if [ "${LICENSE}" != "" ]
+ then
+ echo "License file found: ${LICENSE}"
+ fi
+}
+
+export -f checkfile
+export TARGET
+export SOURCE
+export LIST
+
+find ${TARGET} -name "*\.[ch]" -exec bash -c 'checkfile "$0"' {} \;
--
2.13.7
More information about the devel
mailing list