bcdacb66a0
Reduce number of fork+exec due to using a subshell to execute basename(1).
44 lines
1.1 KiB
Bash
44 lines
1.1 KiB
Bash
# This hook compresses info(1) files.
|
|
|
|
hook() {
|
|
local f j dirat lnkat newlnk
|
|
local fpattern="s|${PKGDESTDIR}||g;s|^\./$||g;/^$/d"
|
|
#
|
|
# Find out if this package contains info files and compress
|
|
# all them with gzip.
|
|
#
|
|
if [ ! -f ${PKGDESTDIR}/usr/share/info/dir ]; then
|
|
return 0
|
|
fi
|
|
# Always remove this file if curpkg is not texinfo.
|
|
if [ "$pkgname" != "texinfo" ]; then
|
|
rm -f ${PKGDESTDIR}/usr/share/info/dir
|
|
fi
|
|
|
|
find ${PKGDESTDIR}/usr/share/info -type f -follow | while read f
|
|
do
|
|
j=$(echo "$f"|sed -e "$fpattern")
|
|
[ "$j" = "" ] && continue
|
|
[ "$j" = "/usr/share/info/dir" ] && continue
|
|
# Ignore compressed files.
|
|
if $(echo "$j"|grep -q '.*.gz$'); then
|
|
continue
|
|
fi
|
|
# Ignore non info files.
|
|
if ! $(echo "$j"|grep -q '.*.info$') && \
|
|
! $(echo "$j"|grep -q '.*.info-[0-9]*$'); then
|
|
continue
|
|
fi
|
|
if [ -h ${PKGDESTDIR}/"$j" ]; then
|
|
dirat=$(dirname "$j")
|
|
lnkat=$(readlink ${PKGDESTDIR}/"$j")
|
|
newlnk="${j##*/}"
|
|
rm -f ${PKGDESTDIR}/"$j"
|
|
cd ${PKGDESTDIR}/"$dirat"
|
|
ln -s "${lnkat}".gz "${newlnk}".gz
|
|
continue
|
|
fi
|
|
echo " Compressing info file: $j..."
|
|
gzip -nfq9 ${PKGDESTDIR}/"$j"
|
|
done
|
|
}
|