]>
Commit | Line | Data |
---|---|---|
45653c84 | 1 | #!/bin/bash |
2 | # (c) 2017, Jonathan Corbet <[email protected]> | |
3 | # sayli karnik <[email protected]> | |
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 |