---
 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
+#  <rt...@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

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to