summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-10-25 10:20:33 +0200
committerThomas Haller <thaller@redhat.com>2018-10-25 11:08:39 +0200
commit168e8b9b6fccf0145dd2fac784612953d94285d4 (patch)
treeb13087f59c4088e8072fba0d6a79f1af352a9db2 /tools
parentcacd3be1a9dc335b429e21253ef27e2db0ef4e3f (diff)
downloadNetworkManager-168e8b9b6fccf0145dd2fac784612953d94285d4.tar.gz
build: fix check-docs.sh for out-of-tree builds
Fixes: 7a59cd274485e4c0345c563d48e516967630d7f0
Diffstat (limited to 'tools')
-rwxr-xr-xtools/check-docs.sh37
1 files changed, 31 insertions, 6 deletions
diff --git a/tools/check-docs.sh b/tools/check-docs.sh
index b7623fed88..b6fca6e0d9 100755
--- a/tools/check-docs.sh
+++ b/tools/check-docs.sh
@@ -2,6 +2,8 @@
set -e
+export LANG=C
+
die() {
printf '%s\n' "$@" >&2
exit 1
@@ -15,25 +17,48 @@ word_regex() {
}
same_lines() {
- diff <(printf "%s\n" "$1" | sed '/^$/d' | sort) \
- <(printf "%s\n%s\n" "$2" "$3" | sed '/^$/d' | sort) >&2
+ diff <(printf "%s\n" "$1" | sed '/^$/d' | sort) \
+ <(printf "%s\n" "$2" | sed '/^$/d' | sort) >&2
+}
+
+libnm_headers() {
+ (
+ ls -1 "$1"libnm/*.h "$1"libnm-core/*.h
+ if [ -n "$2" ]; then
+ ls -1 "$2"/libnm/*.h "$2"/libnm-core/*.h
+ fi
+ ) | sort | uniq
}
+
SOURCEDIR="$1"
+BUILDDIR="$2"
+if test "$SOURCEDIR" == "$BUILDDIR"; then
+ BUILDDIR=
+fi
[ -n "$SOURCEDIR" ] && SOURCEDIR="$SOURCEDIR/"
+
# Check that the D-Bus API docs contain all known interfaces
F1="$(sed -n 's,^ <xi:include href="dbus-\([^"]*\.xml\)"/>$,\1,p' "$SOURCEDIR"docs/api/network-manager-docs.xml)"
+F1_EXTRA="
+org.freedesktop.NetworkManager.Device.WiMax.xml
+org.freedesktop.NetworkManager.WiMax.Nsp.xml
+"
F2="$(cd "$SOURCEDIR"introspection; ls -1 *.xml)"
-if ! same_lines "$F1" "$F2" ; then
+if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2" ; then
die "*** Error: D-Bus interfaces not included in docs/api/network-manager-docs.xml ***"
fi
+
# Check that files that define types that are in public libnm API are included in libnm documentation.
F1="$(sed -n 's/.*<xi:include href="xml\/\([^"]*\)\.xml".*/\1/p' "$SOURCEDIR"docs/libnm/libnm-docs.xml)"
+F1_EXTRA="
+nm-core-enum-types
+nm-enum-types
+"
F2="$(grep -l "$(sed -n 's/^[\t ]*\(.*_get_type\);/\1/p' "$SOURCEDIR"libnm/libnm.ver | word_regex)" \
- "$SOURCEDIR"libnm/*.h \
- "$SOURCEDIR"libnm-core/*.h \
+ $(libnm_headers "$SOURCEDIR" "$BUILDDIR") \
| sed 's,.*/\([^/]\+\)\.h$,\1,')"
F2_EXTRA="
annotation-glossary
@@ -43,6 +68,6 @@ nm-errors
nm-utils
nm-version
"
-if ! same_lines "$F1" "$F2" "$F2_EXTRA"; then
+if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2"$'\n'"$F2_EXTRA"; then
die "*** Error: libnm classes not included in docs/libnm/libnm-docs.xml ***"
fi