| #!/bin/bash | |
| # (c) 2017, Jonathan Corbet <corbet@lwn.net> | |
| # sayli karnik <karniksayli1995@gmail.com> | |
| # | |
| # 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 -export "$file" 2>/dev/null) | |
| if [[ -n "$str" ]]; then | |
| echo "$file" | |
| fi | |
| done | |