mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-15 16:20:08 +02:00
argparse-manpage: new python recipe (#10869)
This commit is contained in:
108
dev-python/argparse-manpage/argparse_manpage-4.6.recipe
Normal file
108
dev-python/argparse-manpage/argparse_manpage-4.6.recipe
Normal file
@@ -0,0 +1,108 @@
|
||||
SUMMARY="Automatically build man-pages for your Python project"
|
||||
DESCRIPTION="Avoid documenting your Python script arguments on two places! This is typically done \
|
||||
in an argparse.ArgumentParser help configuration (help=, description=, etc.), and also in a \
|
||||
manually crafted manual page.
|
||||
|
||||
The good thing about an ArgumentParser objects is that it actually provides a traversable \
|
||||
\"tree-like\" structure, with all the necessary info needed to automatically generate \
|
||||
documentation, for example in a groff typesetting system (manual pages). And this is where this \
|
||||
project can help.
|
||||
|
||||
There are two supported ways to generate the manual, either script it using the installed command \
|
||||
argparse-manpage, or via setup.py build automation (with a slight bonus of automatic manual page \
|
||||
installation with setup.py install)."
|
||||
HOMEPAGE="https://github.com/praiskup/argparse-manpage"
|
||||
COPYRIGHT="Gabriele Giammatteo
|
||||
Pavel Raiskup"
|
||||
LICENSE="Apache v2"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://github.com/praiskup/argparse-manpage/releases/download/v$portVersion/argparse-manpage-$portVersion.tar.gz"
|
||||
CHECKSUM_SHA256="0b659d70fd142876da41c2918bd6de4d027875720b0e4672d6443b51198dbb62"
|
||||
SOURCE_DIR="argparse-manpage-$portVersion"
|
||||
|
||||
ARCHITECTURES="any"
|
||||
|
||||
PROVIDES="
|
||||
$portName = $portVersion
|
||||
"
|
||||
REQUIRES="
|
||||
haiku
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku_devel
|
||||
"
|
||||
|
||||
PYTHON_VERSIONS=(3.10)
|
||||
defaultVersion=3.10
|
||||
for i in "${!PYTHON_VERSIONS[@]}"; do
|
||||
pythonVersion=${PYTHON_VERSIONS[$i]}
|
||||
pythonPackage=python${pythonVersion//.}
|
||||
|
||||
eval "PROVIDES_$pythonPackage=\"
|
||||
${portName}_$pythonPackage = $portVersion
|
||||
cmd:argparse_manpage_$pythonVersion = $portVersion
|
||||
\""
|
||||
|
||||
if [ $pythonVersion = $defaultVersion ]; then
|
||||
eval "PROVIDES_$pythonPackage+=\"
|
||||
cmd:argparse_manpage = $portVersion
|
||||
\""
|
||||
fi
|
||||
|
||||
eval "REQUIRES_$pythonPackage=\"
|
||||
haiku
|
||||
cmd:python$pythonVersion
|
||||
\""
|
||||
|
||||
BUILD_REQUIRES+="
|
||||
build_$pythonPackage
|
||||
installer_$pythonPackage
|
||||
setuptools_$pythonPackage
|
||||
wheel_$pythonPackage
|
||||
"
|
||||
BUILD_PREREQUIRES+="
|
||||
cmd:python$pythonVersion
|
||||
"
|
||||
done
|
||||
|
||||
PATCH()
|
||||
{
|
||||
sed -i "s,share/man,$relativeManDir,g" build_manpages/build_manpages.py
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
for i in "${!PYTHON_VERSIONS[@]}"; do
|
||||
pythonVersion=${PYTHON_VERSIONS[$i]}
|
||||
pythonPackage=python${pythonVersion//.}
|
||||
|
||||
python=python$pythonVersion
|
||||
|
||||
$python -m build --wheel --skip-dependency-check --no-isolation
|
||||
$python -m installer -p $prefix dist/*.whl
|
||||
|
||||
# Version suffix all the scripts and man pages
|
||||
for f in $binDir/*; do
|
||||
mv $f $f-$pythonVersion
|
||||
done
|
||||
for f in $manDir/man1/*; do
|
||||
mv $f ${f%.1}-$pythonVersion.1
|
||||
done
|
||||
|
||||
# And provide suffix-less symlinks for the default version
|
||||
if [ $pythonVersion = $defaultVersion ]; then
|
||||
for f in $binDir/*; do
|
||||
ln -sr $f ${f%-$pythonVersion}
|
||||
done
|
||||
for f in $manDir/man1/*; do
|
||||
ln -sr $f ${f%-$pythonVersion.1}.1
|
||||
done
|
||||
fi
|
||||
|
||||
packageEntries $pythonPackage \
|
||||
$prefix/lib/python* \
|
||||
$binDir \
|
||||
$manDir
|
||||
done
|
||||
}
|
||||
Reference in New Issue
Block a user