#!/usr/bin/env bash # build-aux/lint-h - Lint checks for C header files # # Copyright (C) 2024-2025 Luke T. Shumaker # SPDX-License-Identifier: AGPL-3.0-or-later RED=$(tput setaf 1) RESET=$(tput sgr0) err() { printf "${RED}%s${RESET}: %s\n" "$1" "$2" >&2 r=1 } 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 err "$filename" "does not have ${guard} guard" fi done exit $r