Blame tools/check-docs.sh
|
Packit Service |
b23acc |
#!/bin/bash
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
set -e
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
export LANG=C
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
die() {
|
|
Packit Service |
b23acc |
printf '%s\n' "$@" >&2
|
|
Packit Service |
b23acc |
exit 1
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
word_regex() {
|
|
Packit Service |
b23acc |
tr '\n|<>\\' ' ' \
|
|
Packit Service |
b23acc |
| sed -e 's, *$,\\>,' \
|
|
Packit Service |
b23acc |
-e 's,^ *,\\<,' \
|
|
Packit Service |
b23acc |
-e 's, \+,\\>\\|\\<,g'
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
same_lines() {
|
|
Packit Service |
b23acc |
diff <(printf "%s\n" "$1" | sed '/^$/d' | sort) \
|
|
Packit Service |
b23acc |
<(printf "%s\n" "$2" | sed '/^$/d' | sort) >&2
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
libnm_headers() {
|
|
Packit Service |
b23acc |
(
|
|
Packit Service |
b23acc |
ls -1 "$1/libnm"/*.h "$1/libnm-core"/*.h | \
|
|
Packit Service |
b23acc |
if [ -n "$2" ]; then
|
|
Packit Service |
b23acc |
grep -v -F "$1/libnm-core/nm-core-enum-types.h" | \
|
|
Packit Service |
b23acc |
grep -v -F "$1/libnm/nm-enum-types.h"
|
|
Packit Service |
b23acc |
else
|
|
Packit Service |
b23acc |
cat
|
|
Packit Service |
b23acc |
fi
|
|
Packit Service |
b23acc |
if [ -n "$2" ]; then
|
|
Packit Service |
b23acc |
ls -1 "$2/libnm"/*.h "$2/libnm-core"/*.h
|
|
Packit Service |
b23acc |
fi
|
|
Packit Service |
b23acc |
) | sort | uniq
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
SOURCEDIR="$1"
|
|
Packit Service |
b23acc |
BUILDDIR="$2"
|
|
Packit Service |
b23acc |
if test "$SOURCEDIR" == "$BUILDDIR"; then
|
|
Packit Service |
b23acc |
BUILDDIR=
|
|
Packit Service |
b23acc |
fi
|
|
Packit Service |
b23acc |
[ -z "$SOURCEDIR" ] && SOURCEDIR='.'
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
# Check that the D-Bus API docs contain all known interfaces
|
|
Packit Service |
b23acc |
F1="$(sed -n 's,^ <xi:include href="dbus-\([^"]*\.xml\)"/>$,\1,p' "$SOURCEDIR/docs/api/network-manager-docs.xml")"
|
|
Packit Service |
b23acc |
F1_EXTRA="
|
|
Packit Service |
b23acc |
org.freedesktop.NetworkManager.Device.WiMax.xml
|
|
Packit Service |
b23acc |
org.freedesktop.NetworkManager.WiMax.Nsp.xml
|
|
Packit Service |
b23acc |
"
|
|
Packit Service |
b23acc |
F2="$(cd "$SOURCEDIR/introspection"; ls -1 *.xml)"
|
|
Packit Service |
b23acc |
if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2" ; then
|
|
Packit Service |
b23acc |
die "*** Error: D-Bus interfaces not included in docs/api/network-manager-docs.xml ***"
|
|
Packit Service |
b23acc |
fi
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
# Check that files that define types that are in public libnm API are included in libnm documentation.
|
|
Packit Service |
b23acc |
F1="$(sed -n 's/.*
|
|
Packit Service |
b23acc |
F1_EXTRA="
|
|
Packit Service |
b23acc |
nm-core-enum-types
|
|
Packit Service |
b23acc |
nm-enum-types
|
|
Packit Service |
b23acc |
"
|
|
Packit Service |
b23acc |
F2="$(grep -l "$(sed -n 's/^[\t ]*\(.*_get_type\);/\1/p' "$SOURCEDIR/libnm/libnm.ver" | word_regex)" \
|
|
Packit Service |
b23acc |
$(libnm_headers "$SOURCEDIR" "$BUILDDIR") \
|
|
Packit Service |
b23acc |
| sed 's,.*/\([^/]\+\)\.h$,\1,')"
|
|
Packit Service |
b23acc |
F2_EXTRA="
|
|
Packit Service |
b23acc |
annotation-glossary
|
|
Packit Service |
b23acc |
api-index-full
|
|
Packit Service |
b23acc |
nm-dbus-interface
|
|
Packit Service |
b23acc |
nm-errors
|
|
Packit Service |
b23acc |
nm-utils
|
|
Packit Service |
b23acc |
nm-version
|
|
Packit Service |
b23acc |
"
|
|
Packit Service |
b23acc |
if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2"$'\n'"$F2_EXTRA"; then
|
|
Packit Service |
b23acc |
die "*** Error: libnm classes not included in docs/libnm/libnm-docs.xml ***"
|
|
Packit Service |
b23acc |
fi
|