115 lines
3 KiB
Text
115 lines
3 KiB
Text
# $NetBSD: fonts,v 1.7 2014/06/01 16:57:27 wiz Exp $
|
|
#
|
|
# Generate a +FONTS script that updates font databases for the package.
|
|
#
|
|
case "${STAGE},$1" in
|
|
UNPACK,|UNPACK,+FONTS)
|
|
${CAT} > ./+FONTS << 'EOF'
|
|
#!@SH@
|
|
#
|
|
# +FONTS - font database management script
|
|
#
|
|
# Usage: ./+FONTS [metadatadir]
|
|
#
|
|
# This scripts rebuilds font databases needed by the package associated
|
|
# with <metadatadir>.
|
|
#
|
|
# Lines starting with "# FONTS: " are data read by this script that name
|
|
# the directories in which the font database will be rebuilt.
|
|
#
|
|
# # FONTS: /usr/pkg/share/fonts/X11/TTF ttf
|
|
# # FONTS: /usr/pkg/share/fonts/X11/Type1 type1
|
|
# # FONTS: /usr/pkg/share/fonts/X11/misc x11
|
|
#
|
|
# For each FONTS entry, if the path is relative, that it is taken to be
|
|
# relative to ${PKG_PREFIX}.
|
|
#
|
|
|
|
ECHO="@ECHO@"
|
|
FIND="@FIND@"
|
|
GREP="@GREP@"
|
|
MKFONTDIR="@MKFONTDIR@"
|
|
PWD_CMD="@PWD_CMD@"
|
|
RM="@RM@"
|
|
RMDIR="@RMDIR@"
|
|
SED="@SED@"
|
|
SORT="@SORT@"
|
|
TEST="@TEST@"
|
|
TRUE="@TRUE@"
|
|
TTF_INDEX_CMD="@TTF_INDEX_CMD@"
|
|
TYPE1_INDEX_CMD="@TYPE1_INDEX_CMD@"
|
|
TYPE1_POSTINDEX_CMD="@TYPE1_POSTINDEX_CMD@"
|
|
X11_ENCODINGSDIR="@X11_ENCODINGSDIR@"
|
|
|
|
SELF=$0
|
|
|
|
CURDIR=`${PWD_CMD}`
|
|
PKG_METADATA_DIR="${1-${CURDIR}}"
|
|
: ${PKGNAME=${PKG_METADATA_DIR##*/}}
|
|
: ${PKG_PREFIX=@PREFIX@}
|
|
|
|
case "${PKG_UPDATE_FONTS_DB:-@PKG_UPDATE_FONTS_DB@}" in
|
|
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
|
|
_PKG_UPDATE_FONTS_DB=yes
|
|
;;
|
|
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
|
|
_PKG_UPDATE_FONTS_DB=no
|
|
;;
|
|
esac
|
|
|
|
case "${FONTS_VERBOSE:-@FONTS_VERBOSE@}" in
|
|
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
|
|
echo="${ECHO}"
|
|
;;
|
|
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
|
|
echo=":"
|
|
;;
|
|
esac
|
|
|
|
${SED} -n "/^\# FONTS: /{s/^\# FONTS: //;p;}" ${SELF} | ${SORT} -u |
|
|
while read dir font_type; do
|
|
case ${_PKG_UPDATE_FONTS_DB} in
|
|
no) continue ;;
|
|
esac
|
|
case $dir in
|
|
"") continue ;;
|
|
[!/]*) dir="${PKG_PREFIX}/$dir" ;;
|
|
esac
|
|
${TEST} -d "$dir" || continue
|
|
( $echo "${PKGNAME}: updating font database in $dir ($font_type)"
|
|
cd $dir
|
|
update_args=
|
|
post_update_cmd=
|
|
case $font_type in
|
|
[tT][tT][fF]) update_cmd="${TTF_INDEX_CMD}" ;;
|
|
[tT][yY][pP][eE]1) update_cmd="${TYPE1_INDEX_CMD}"
|
|
post_update_cmd="${TYPE1_POSTINDEX_CMD}" ;;
|
|
[xX]11) update_cmd="${MKFONTDIR}"
|
|
[ ! -z "${X11_ENCODINGSDIR}" ] && update_args="-e ${X11_ENCODINGSDIR}" ;;
|
|
esac
|
|
${TEST} -f "$update_cmd" || update_cmd="${TRUE}"
|
|
$update_cmd $update_args >/dev/null
|
|
$post_update_cmd
|
|
#
|
|
# Remove fonts databases if there are no fonts in the directory.
|
|
# We filter out the encodings.dir, fonts.{dirs,scale}, and
|
|
# Fontmap database files from the directory listing. Also remove
|
|
# the directory if it turns out to be empty.
|
|
#
|
|
if ${FIND} . -type f | ${GREP} -v "/encodings.dir" | ${GREP} -v "/fonts\.scale" | \
|
|
${GREP} -v "/fonts\.dir" | ${GREP} -v "/Fontmap" >/dev/null
|
|
then
|
|
: # Directory not empty; do nothing.
|
|
else
|
|
${RM} -f fonts.dir fonts.scale Fontmap* encodings.dir
|
|
${RMDIR} -p $dir 2>/dev/null
|
|
fi
|
|
)
|
|
done
|
|
|
|
EOF
|
|
${SED} -n "/^\# FONTS: /p" ${SELF} >> ./+FONTS
|
|
${CHMOD} +x ./+FONTS
|
|
;;
|
|
esac
|
|
|