summaryrefslogtreecommitdiff
path: root/build-aux/lint-h
blob: 965d7d80a8a57f0e16b702d43c1aa3e06abb4bbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env bash
# build-aux/lint-h - Lint checks for C header files
#
# Copyright (C) 2024-2025  Luke T. Shumaker <lukeshu@lukeshu.com>
# SPDX-License-Identifier: AGPL-3.0-or-later

r=0
for filename in "$@"; do
	dscname=$(./build-aux/get-dscname "$filename")
	guard=${dscname//'/'/'_'}
	guard=${guard//'.'/'_'}
	guard="_${guard^^}_"
	if ! { grep -Fxq "#ifndef ${guard}"      "$filename" &&
	       grep -Fxq "#define ${guard}"      "$filename" &&
	       grep -Fxq "#endif /* ${guard} */" "$filename"; }; then
		echo "$filename does not have ${guard} guard"; r=1
	fi
done
exit $r