Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scripts: Add a script to find unused documentation

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 <karniksayli1995@gmail.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

authored by

sayli karnik and committed by
Jonathan Corbet
45653c84 0d694234

+62
+62
scripts/find-unused-docs.sh
··· 1 + #!/bin/bash 2 + # (c) 2017, Jonathan Corbet <corbet@lwn.net> 3 + # sayli karnik <karniksayli1995@gmail.com> 4 + # 5 + # This script detects files with kernel-doc comments for exported functions 6 + # that are not included in documentation. 7 + # 8 + # usage: Run 'scripts/find-unused-docs.sh directory' from top level of kernel 9 + # tree. 10 + # 11 + # example: $scripts/find-unused-docs.sh drivers/scsi 12 + # 13 + # Licensed under the terms of the GNU GPL License 14 + 15 + if ! [ -d "Documentation" ]; then 16 + echo "Run from top level of kernel tree" 17 + exit 1 18 + fi 19 + 20 + if [ "$#" -ne 1 ]; then 21 + echo "Usage: scripts/find-unused-docs.sh directory" 22 + exit 1 23 + fi 24 + 25 + if ! [ -d "$1" ]; then 26 + echo "Directory $1 doesn't exist" 27 + exit 1 28 + fi 29 + 30 + cd "$( dirname "${BASH_SOURCE[0]}" )" 31 + cd .. 32 + 33 + cd Documentation/ 34 + 35 + echo "The following files contain kerneldoc comments for exported functions \ 36 + that are not used in the formatted documentation" 37 + 38 + # FILES INCLUDED 39 + 40 + files_included=($(grep -rHR ".. kernel-doc" --include \*.rst | cut -d " " -f 3)) 41 + 42 + declare -A FILES_INCLUDED 43 + 44 + for each in "${files_included[@]}"; do 45 + FILES_INCLUDED[$each]="$each" 46 + done 47 + 48 + cd .. 49 + 50 + # FILES NOT INCLUDED 51 + 52 + for file in `find $1 -name '*.c'`; do 53 + 54 + if [[ ${FILES_INCLUDED[$file]+_} ]]; then 55 + continue; 56 + fi 57 + str=$(scripts/kernel-doc -text -export "$file" 2>/dev/null) 58 + if [[ -n "$str" ]]; then 59 + echo "$file" 60 + fi 61 + done 62 +