xref: /aosp_15_r20/external/libtracefs/check-manpages.sh (revision 287e80b3a36113050663245e7f2c00d274188f18)
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