diff --git a/shutils/metadata_scripts.sh b/shutils/metadata_scripts.sh index 0c67694149b..b3830b686e7 100644 --- a/shutils/metadata_scripts.sh +++ b/shutils/metadata_scripts.sh @@ -77,6 +77,13 @@ _EOF fi echo >> $tmpf + # + # Handle X11 font updates via mkfontdir/mkfontscale. + # + if [ -n "${font_dirs}" ]; then + echo "font_dirs=\"${font_dirs}\"" >> $tmpf + fi + if [ -n "$triggers" ]; then found=1 echo "case \"\$2\" in" >> $tmpf diff --git a/triggers/x11-fonts b/triggers/x11-fonts new file mode 100755 index 00000000000..3cdebb170b2 --- /dev/null +++ b/triggers/x11-fonts @@ -0,0 +1,55 @@ +#!/bin/sh +# +# This trigger rebuilds the fonts.dir and fonts.scale files +# for packages that install X11 fonts. +# +# Arguments: $1 = action [run/targets] +# $2 = target [post-install/pre-remove] +# $3 = pkgname +# +trigger="x11-fonts" + +case "$1" in +targets) + echo "post-install pre-remove" + ;; +run) + if [ ! -x ${mkfontdir} -a ! -x ${mkfontscale} ]; then + exit 0 + fi + + [ -z "${font_dirs}" ] && exit 0 + + echo "Running $trigger trigger..." + + case "$2" in + post-install) + for dir in ${font_dirs}; do + echo "Building ${dir}/fonts.dir..." + mkfontdir .${dir} || exit $? + echo "Building ${dir}/fonts.scale..." + mkfontscale .${dir} || exit $? + done + ;; + pre-remove) + for dir in ${font_dirs}; do + if [ -f .${dir}/fonts.dir ]; then + rm -f .${dir}/fonts.dir + fi + if [ -f .${dir}/fonts.scale ]; then + rm -f .${dir}/fonts.scale + fi + if [ -f .${dir}/encodings.dir ]; then + rm -f .${dir}/encodings.dir + fi + done + ;; + esac + + ;; +*) + exit 1 + ;; +esac + +exit 0