1*287e80b3SSadaf Ebrahimi#!/bin/bash 2*287e80b3SSadaf Ebrahimi# SPDX-License-Identifier: LGPL-2.1 3*287e80b3SSadaf Ebrahimi# Copyright (C) 2022, Google Inc, Steven Rostedt <[email protected]> 4*287e80b3SSadaf Ebrahimi# 5*287e80b3SSadaf Ebrahimi# This checks if any function is listed in a man page that is not listed 6*287e80b3SSadaf Ebrahimi# in the main man page. 7*287e80b3SSadaf Ebrahimi 8*287e80b3SSadaf Ebrahimiif [ $# -lt 1 ]; then 9*287e80b3SSadaf Ebrahimi echo "usage: check-manpages man-page-path" 10*287e80b3SSadaf Ebrahimi exit 1 11*287e80b3SSadaf Ebrahimifi 12*287e80b3SSadaf Ebrahimi 13*287e80b3SSadaf Ebrahimicd $1 14*287e80b3SSadaf Ebrahimi 15*287e80b3SSadaf EbrahimiMAIN=libtracefs 16*287e80b3SSadaf EbrahimiMAIN_FILE=${MAIN}.txt 17*287e80b3SSadaf Ebrahimi 18*287e80b3SSadaf EbrahimiPROCESSED="" 19*287e80b3SSadaf Ebrahimi 20*287e80b3SSadaf Ebrahimi# Ignore man pages that do not contain functions 21*287e80b3SSadaf EbrahimiIGNORE="libtracefs-options.txt" 22*287e80b3SSadaf Ebrahimi 23*287e80b3SSadaf Ebrahimifor man in ${MAIN}-*.txt; do 24*287e80b3SSadaf Ebrahimi 25*287e80b3SSadaf Ebrahimi for a in `sed -ne '/^NAME/,/^SYNOP/{/^[a-z]/{s/, *$//;s/,/\n/g;s/ //g;s/-.*$/-/;/-/{s/-//p;q};p}}' $man`; do 26*287e80b3SSadaf Ebrahimi if [ "${PROCESSED/:${a} /}" != "${PROCESSED}" ]; then 27*287e80b3SSadaf Ebrahimi P="${PROCESSED/:${a} */}" 28*287e80b3SSadaf Ebrahimi echo "Found ${a} in ${man} and in ${P/* /}" 29*287e80b3SSadaf Ebrahimi fi 30*287e80b3SSadaf Ebrahimi PROCESSED="${man}:${a} ${PROCESSED}" 31*287e80b3SSadaf Ebrahimi if [ "${IGNORE/$man/}" != "${IGNORE}" ]; then 32*287e80b3SSadaf Ebrahimi continue 33*287e80b3SSadaf Ebrahimi fi 34*287e80b3SSadaf Ebrahimi if ! grep -q '\*'${a}'\*' $MAIN_FILE; then 35*287e80b3SSadaf Ebrahimi if [ "$last" == "" ]; then 36*287e80b3SSadaf Ebrahimi echo 37*287e80b3SSadaf Ebrahimi fi 38*287e80b3SSadaf Ebrahimi if [ "$last" != "$man" ]; then 39*287e80b3SSadaf Ebrahimi echo "Missing functions from $MAIN_FILE that are in $man" 40*287e80b3SSadaf Ebrahimi last=$man 41*287e80b3SSadaf Ebrahimi fi 42*287e80b3SSadaf Ebrahimi echo " ${a}" 43*287e80b3SSadaf Ebrahimi fi 44*287e80b3SSadaf Ebrahimi done 45*287e80b3SSadaf Ebrahimidone 46*287e80b3SSadaf Ebrahimi 47*287e80b3SSadaf EbrahimiDEPRECATED="*tracefs_event_append_filter* *tracefs_event_verify_filter*" 48*287e80b3SSadaf Ebrahimi 49*287e80b3SSadaf Ebrahimised -ne 's/^[a-z].*[ \*]\([a-z_][a-z_]*\)(.*/\1/p' -e 's/^\([a-z_][a-z_]*\)(.*/\1/p' ../include/tracefs.h | while read f; do 50*287e80b3SSadaf Ebrahimi if ! grep -q '\*'${f}'\*' $MAIN_FILE; then 51*287e80b3SSadaf Ebrahimi if [ "${DEPRECATED/\*$f\*/}" != "${DEPRECATED}" ]; then 52*287e80b3SSadaf Ebrahimi continue; 53*287e80b3SSadaf Ebrahimi fi 54*287e80b3SSadaf Ebrahimi if [ "$last" == "" ]; then 55*287e80b3SSadaf Ebrahimi echo 56*287e80b3SSadaf Ebrahimi echo "Missing functions from $MAIN_FILE that are in tracefs.h" 57*287e80b3SSadaf Ebrahimi last=$f 58*287e80b3SSadaf Ebrahimi fi 59*287e80b3SSadaf Ebrahimi echo " ${f}" 60*287e80b3SSadaf Ebrahimi fi 61*287e80b3SSadaf Ebrahimidone 62