void-packages/common/hooks/pre-pkg/04-generate-provides.sh
Đoàn Trần Công Danh ee2368a0e5 hooks/gen-provides: Correctly uses builtin provides and mapfile
- `read -r -a' somehow doesn't work with newline, but we don't need to
  invoke a builtin for that, we can just simply assign to the variable
- In `mapfile', `-t' is used for removing newline, not for target. The
  targeting array need to be specified last in the array.

Close #53532
2024-12-19 21:28:47 +07:00

27 lines
951 B
Bash

# vim: set ts=4 sw=4 ft=bash et:
#
# This hook executes the following tasks:
# - Generates provides file with provides entries for xbps-create(1)
generate_python_provides() {
local py3_bin="${XBPS_MASTERDIR}/usr/bin/python3"
if [ -z "$nopyprovides" ] && [ -d "${PKGDESTDIR}/${py3_sitelib}" ] && [ -x "${py3_bin}" ]; then
PYTHONPATH="${XBPS_MASTERDIR}/${py3_sitelib}-bootstrap" "${py3_bin}" \
"${XBPS_COMMONDIR}"/scripts/parse-py-metadata.py \
-S "${PKGDESTDIR}/${py3_sitelib}" -v "${pkgver}" provides
fi
}
hook() {
# include explicit values from the template
local -a _provides=($provides)
# get the canonical python package names for each python module
mapfile -t -O "${#_provides[@]}" _provides < <( generate_python_provides )
if [ "${#_provides[@]}" -gt 0 ]; then
echo " ${_provides[*]}"
echo "${_provides[*]}" > "${XBPS_STATEDIR}/${pkgname}-provides"
fi
}