mirror of
https://github.com/systemd/systemd
synced 2024-09-06 16:56:43 +00:00
![Zbigniew Jędrzejewski-Szmek](/assets/img/avatar_default.png)
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.
29 lines
718 B
Bash
Executable file
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"
|