blob: 235690c5a65f66fa844eab760e58b634b401adb7 [file] [log] [blame]
#! /bin/sh
# SPDX-License-Identifier: Apache-2.0
#
# (c) 2019, Google
progname="${0##*/}"
USAGE="USAGE: ${progname} < kernel_build_error_log
${progname} kernel_build_error_log
Add MODULE_LICENSE to all the files.
Must be performed in the root directory."
if [ X"--help" = X"${1}" -o X"{-h}" = X"${1}" ]; then
echo "${USAGE}" >&2
exit
fi
INPUT=
if [ 1 = ${#} ]; then
INPUT=${1}
shift
fi
if [ 0 != ${#} ]; then
echo "Unexpected Argument: ${*}" >&2
echo >&2
echo "${USAGE}" >&2
exit 1
fi
convert_to_module_name() {
echo "${1##*/}" |
sed 's@[-_]@ @g
s@ *@ @g
s@^btfm @BTFM @
s@^msm @MSM @
s@ dma\( \|$\)@ DMA\1@g
s@ irq\( \|$\)@ IRQ\1@g
s@ io\( \|$\)@ I/O\1@g
s@ mem\( \|$\)@ memory\1@g
s@ hw\( \|$\)@ hardware\1@g
s@ jpeg\( \|$\)@ JPEG\1@g
s@ mgr$@ manager@
s@ util$@ utilities@
s@\(^\| \)a@\1A@g
s@\(^\| \)b@\1B@g
s@\(^\| \)c@\1C@g
s@\(^\| \)d@\1D@g
s@\(^\| \)e@\1E@g
s@\(^\| \)f@\1F@g
s@\(^\| \)g@\1G@g
s@\(^\| \)h@\1H@g
s@\(^\| \)i@\1I@g
s@\(^\| \)j@\1J@g
s@\(^\| \)k@\1K@g
s@\(^\| \)l@\1L@g
s@\(^\| \)m@\1M@g
s@\(^\| \)n@\1N@g
s@\(^\| \)o@\1O@g
s@\(^\| \)p@\1P@g
s@\(^\| \)q@\1Q@g
s@\(^\| \)r@\1R@g
s@\(^\| \)s@\1S@g
s@\(^\| \)t@\1T@g
s@\(^\| \)u@\1U@g
s@\(^\| \)v@\1V@g
s@\(^\| \)w@\1W@g
s@\(^\| \)x@\1X@g
s@\(^\| \)y@\1Y@g
s@\(^\| \)z@\1Z@g'
}
sed -n \
's/WARNING: modpost: missing MODULE_LICENSE() in \(.*\)[.]o$/\1/p' \
${INPUT} |
sort -u |
while read f; do
F=${f}.c
if [ ! -f "${F}" ]; then
F=${f%${f##*/}}`echo ${f##*/} | tr -- - _`.c
if [ ! -f "${F}" ]; then
F=${F%.c}_core.c
if [ ! -f "${F}" ]; then
F=${f%${f##*/}}`echo ${f##*/} | tr _ -`.c
if [ ! -f "${F}" ]; then
F=${F%.c}_core.c
if [ ! -f "${F}" ]; then
echo WARNING: ${f}.c not found, needs a MODULE_LICENSE >&2
continue
fi
fi
fi
fi
fi
if grep MODULE_LICENSE ${F} >/dev/null 2>/dev/null; then
echo INFO: MODULE_LICENSE already present in ${F} >&2
continue
fi
module="`convert_to_module_name ${f}`"
if [ -z "${module}" ]; then
echo ERROR: ${f} can not be converted into a module name >&2
continue
fi
sed -i "\${
a \\
\\
MODULE_LICENSE(\"GPL v2\");\\
MODULE_DESCRIPTION(\"${module}\");
}" ${F} &&
echo INFO: Added MODULE_LICENSE to ${F} >&2 ||
echo ERROR: Failed to add MODULE_LICENSE to ${F} >&2
done