Vexta/contrib/devtools/gen-manpages.sh

53 lines
2.1 KiB
Shell
Raw Permalink Normal View History

2026-07-15 14:07:28 +00:00
#!/usr/bin/env bash
# Copyright (c) 2016-2020 The DigiByte Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
export LC_ALL=C
TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)}
BUILDDIR=${BUILDDIR:-$TOPDIR}
BINDIR=${BINDIR:-$BUILDDIR/src}
MANDIR=${MANDIR:-$TOPDIR/doc/man}
DIGIBYTED=${DIGIBYTED:-$BINDIR/digibyted}
DIGIBYTECLI=${DIGIBYTECLI:-$BINDIR/digibyte-cli}
DIGIBYTETX=${DIGIBYTETX:-$BINDIR/digibyte-tx}
WALLET_TOOL=${WALLET_TOOL:-$BINDIR/digibyte-wallet}
DIGIBYTEUTIL=${DIGIBYTEQT:-$BINDIR/digibyte-util}
DIGIBYTEQT=${DIGIBYTEQT:-$BINDIR/qt/digibyte-qt}
[ ! -x $DIGIBYTED ] && echo "$DIGIBYTED not found or not executable." && exit 1
# Don't allow man pages to be generated for binaries built from a dirty tree
DIRTY=""
for cmd in $DIGIBYTED $DIGIBYTECLI $DIGIBYTETX $WALLET_TOOL $DIGIBYTEUTIL $DIGIBYTEQT; do
VERSION_OUTPUT=$($cmd --version)
if [[ $VERSION_OUTPUT == *"dirty"* ]]; then
DIRTY="${DIRTY}${cmd}\n"
fi
done
if [ -n "$DIRTY" ]
then
echo -e "WARNING: the following binaries were built from a dirty tree:\n"
echo -e $DIRTY
echo "man pages generated from dirty binaries should NOT be committed."
echo "To properly generate man pages, please commit your changes to the above binaries, rebuild them, then run this script again."
fi
# The autodetected version git tag can screw up manpage output a little bit
read -r -a DGBVER <<< "$($DIGIBYTECLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }')"
# Create a footer file with copyright content.
# This gets autodetected fine for digibyted if --version-string is not set,
# but has different outcomes for digibyte-qt and digibyte-cli.
echo "[COPYRIGHT]" > footer.h2m
$DIGIBYTED --version | sed -n '1!p' >> footer.h2m
for cmd in $DIGIBYTED $DIGIBYTECLI $DIGIBYTETX $WALLET_TOOL $DIGIBYTEUTIL $DIGIBYTEQT; do
cmdname="${cmd##*/}"
help2man -N --version-string=${DGBVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd}
sed -i "s/\\\-${DGBVER[1]}//g" ${MANDIR}/${cmdname}.1
done
rm -f footer.h2m