1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
#!/usr/bin/env bash
set -eou pipefail
function usage()
{
cat << HEREDOC
Usage:
$PROGRAM --install|--uninstall --mandir <directory> --mansrcdir <directory> [<man page name>...]
Install translated man pages.
Options:
--help show this help message and exit
--mandir <mandir> directory in which to install the man pages, usually share/man
--mansrcdir <mansrcdir> directory containing the man pages to install
Environment Variables:
MESON_INSTALL_PREFIX install destination prefix directory
HEREDOC
}
MANPAGES=()
PROGRAM=$(basename "$0")
MYCMD="install"
FORCE_DESTDIR=false
while [[ $# -gt 0 ]]; do
case $1 in
--help)
usage
exit 0
;;
--force-destdir)
FORCE_DESTDIR=true
shift
;;
--mandir)
MANDIR="$2"
shift
shift
;;
--mansrcdir)
MANSRCDIR="$2"
shift
shift
;;
--install)
MYCMD="install"
shift
;;
--uninstall)
MYCMD="uninstall"
shift
;;
--*|-*)
echo "Unknown option $1"
usage
exit 1
;;
*)
MANPAGES+=("$1")
shift
;;
esac
done
# Autotools automatically uses $DESTDIR in all paths, but Meson assumes that
# custom scripts will prefix the path.
if [ "$FORCE_DESTDIR" = true ]; then
MANDIR="${DESTDIR}/${MANDIR}"
fi
set -- "${MANPAGES[@]}"
if [ ${#MANPAGES[@]} -eq 0 ]; then
shopt -s nullglob
MANPAGES=("$MANSRCDIR"/*/man[0-9]/*\.[0-9])
fi
for LOCALEDIR in "$MANSRCDIR"/*/; do
LOCALE=$(basename "$LOCALEDIR")
for MANPAGE in "${MANPAGES[@]}"; do
MANPAGE=$(basename "$MANPAGE")
SECTION="${MANPAGE##*.}"
if [ "$MYCMD" = "install" ]; then
PAGE="$LOCALEDIR/man$SECTION/$MANPAGE"
if [ -f "$PAGE" ]; then
echo "Installing $PAGE to ${MANDIR}/$LOCALE/man$SECTION"
mkdir -p "${MANDIR}/$LOCALE/man$SECTION"
install -m 644 "$PAGE" "${MANDIR}/$LOCALE/man$SECTION"
fi
elif [ "$MYCMD" = "uninstall" ]; then
echo "Uninstalling ${MANDIR}/$LOCALE/man$SECTION/$MANPAGE"
rm -f "${MANDIR}/$LOCALE/man$SECTION/$MANPAGE"
fi
done
done
|