Systemd/man/man.in
Zbigniew Jędrzejewski-Szmek 4338ab8163 meson: fix build/man/{man,html} to support page redirects
Commands like build/man/man journald.conf.d would show the installed
man page (or an error if the page cannot be found in the global search
path), and not the one in the build directory. If the man page is
a redirect, or the .html is a symlink, resolve it, build the target,
and show that.
2020-08-20 17:42:13 +02:00

29 lines
718 B
Bash
Executable file

#!/bin/sh
set -e
if [ -z "$1" ]; then
echo "Use: $0 page-name (with no section suffix)"
exit 1
fi
# make sure the rules have been regenerated (in case man/update-man-rules was just run)
ninja -C "@BUILD_ROOT@" version.h
page="$(echo "$1" | sed 's/\./\\./')"
target=$(ninja -C "@BUILD_ROOT@" -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
if [ -z "$target" ]; then
echo "Cannot find page $1"
exit 1
fi
ninja -C "@BUILD_ROOT@" "$target"
fullname="@BUILD_ROOT@/$target"
redirect="$(sed -n -r '1 s|^\.so man[0-9]/(.*)|\1|p' "$fullname")"
if [ -n "$redirect" ]; then
ninja -C "@BUILD_ROOT@" "man/$redirect"
fullname="@BUILD_ROOT@/man/$redirect"
fi
exec man "$fullname"