#!/usr/bin/env bash # SPDX-License-Identifier: LGPL-2.1-or-later set -eu set -o pipefail sd_good=0 sd_total=0 udev_good=0 udev_total=0 deprecated=( -e sd_bus_try_close -e sd_bus_process_priority -e sd_bus_message_get_priority -e sd_bus_message_set_priority -e sd_seat_can_multi_session -e sd_journal_open_container ) for symbol in $(nm -g --defined-only "$@" | grep " T " | cut -d" " -f3 | grep -wv "${deprecated[@]}" | sort -u); do if test -f "${MESON_BUILD_ROOT:?}/man/$symbol.3"; then echo "✓ Symbol $symbol() is documented." good=1 else echo -e " \x1b[1;31mSymbol $symbol() lacks documentation.\x1b[0m" good=0 fi case "$symbol" in sd_*) ((sd_good+=good)) ((sd_total+=1)) ;; udev_*) ((udev_good+=good)) ((udev_total+=1)) ;; *) echo 'unknown symbol prefix' exit 1 esac done echo "libsystemd: $sd_good/$sd_total libudev: $udev_good/$udev_total"