Skip to content

Commit

Permalink
scripts: Add a script to find unused documentation
Browse files Browse the repository at this point in the history
Add a script that finds files with kernel-doc comments for imported functions
that are not included anywhere in documentation.

Signed-off-by: sayli karnik <[email protected]>
Signed-off-by: Jonathan Corbet <[email protected]>
  • Loading branch information
Sayli-Karnik authored and Jonathan Corbet committed Oct 23, 2017
1 parent 0d69423 commit 45653c8
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions scripts/find-unused-docs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash
# (c) 2017, Jonathan Corbet <[email protected]>
# sayli karnik <[email protected]>
#
# This script detects files with kernel-doc comments for exported functions
# that are not included in documentation.
#
# usage: Run 'scripts/find-unused-docs.sh directory' from top level of kernel
# tree.
#
# example: $scripts/find-unused-docs.sh drivers/scsi
#
# Licensed under the terms of the GNU GPL License

if ! [ -d "Documentation" ]; then
echo "Run from top level of kernel tree"
exit 1
fi

if [ "$#" -ne 1 ]; then
echo "Usage: scripts/find-unused-docs.sh directory"
exit 1
fi

if ! [ -d "$1" ]; then
echo "Directory $1 doesn't exist"
exit 1
fi

cd "$( dirname "${BASH_SOURCE[0]}" )"
cd ..

cd Documentation/

echo "The following files contain kerneldoc comments for exported functions \
that are not used in the formatted documentation"

# FILES INCLUDED

files_included=($(grep -rHR ".. kernel-doc" --include \*.rst | cut -d " " -f 3))

declare -A FILES_INCLUDED

for each in "${files_included[@]}"; do
FILES_INCLUDED[$each]="$each"
done

cd ..

# FILES NOT INCLUDED

for file in `find $1 -name '*.c'`; do

if [[ ${FILES_INCLUDED[$file]+_} ]]; then
continue;
fi
str=$(scripts/kernel-doc -text -export "$file" 2>/dev/null)
if [[ -n "$str" ]]; then
echo "$file"
fi
done

0 comments on commit 45653c8

Please sign in to comment.