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
|
#!/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"
while [[ $# -gt 0 ]]; do
case $1 in
--help)
usage
exit 0
;;
--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
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
if [ -z ${MESON_INSTALL_QUIET+x} ]; then
echo "Installing $PAGE to ${MANDIR}/$LOCALE/man$SECTION"
fi
mkdir -p "${MANDIR}/$LOCALE/man$SECTION"
install -m 644 "$PAGE" "${MANDIR}/$LOCALE/man$SECTION"
fi
elif [ "$MYCMD" = "uninstall" ]; then
if [ -z ${MESON_INSTALL_QUIET+x} ]; then
echo "Uninstalling ${MANDIR}/$LOCALE/man$SECTION/$MANPAGE"
fi
rm -f "${MANDIR}/$LOCALE/man$SECTION/$MANPAGE"
fi
done
done
|