# $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 . # # 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