sayli karnik | 45653c8 | 2017-09-09 22:26:18 +0530 | [diff] [blame] | 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 | |