45653c84 |
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 | |