diff options
Diffstat (limited to 'recipes/qpf-fonts/files/update-qtfontdir')
-rwxr-xr-x | recipes/qpf-fonts/files/update-qtfontdir | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/recipes/qpf-fonts/files/update-qtfontdir b/recipes/qpf-fonts/files/update-qtfontdir new file mode 100755 index 0000000000..34f2ffd825 --- /dev/null +++ b/recipes/qpf-fonts/files/update-qtfontdir @@ -0,0 +1,74 @@ +#!/bin/sh + +usage() +{ + echo "usage: $0 [font directory, defaults to \$QTDIR/lib/fonts]" + exit 1 +} + +setVar() +{ + eval "$1='$2'" +} + +getVar() +{ + eval "echo \$$1" +} + +handleQPF() +{ + base=`basename $1` + family=`echo $base|cut -d_ -f1` + pt=`echo $base|cut -d_ -f2` + weight=`echo $base|cut -d_ -f3|sed -e 's,i$,,'` + if (echo $base|cut -d_ -f3|grep -q 'i$'); then + italic="y" + else + italic="n" + fi + echo "$family $base.qpf QPF $italic $weight $pt u" +} + +if [ "$1" = "-f" ]; then + FORCE=1 + shift +else + FORCE=0 +fi + +if [ -z "$1" ]; then + if [ -n "$QTDIR" ]; then + fontdir=$QTDIR/lib/fonts + else + fontdir=@palmtopdir@/lib/fonts + fi +else + fontdir=$1 +fi + +if ! [ -d $fontdir ]; then + echo Error: $fontdir not a directory + exit 1 +fi + +if [ -e $fontdir/fontdir ]; then + if find $fontdir -newer $fontdir/fontdir | grep -q "\(qpf\|ttf\)"; then + #echo "fontdir needs updating..." + : + elif [ "$FORCE" = "0" ]; then + #echo "fontdir already up to date - exiting" + exit 0 + fi + cat $fontdir/fontdir | grep -v '\.qpf' > $fontdir/fontdir.new +fi + +( + for file in `ls $fontdir/*.qpf 2>/dev/null |sed -e's,\.qpf$,,; s,_t[^_]*$,,;'|sort -u`; do + handleQPF $file + done +) >> $fontdir/fontdir.new + +mv $fontdir/fontdir.new $fontdir/fontdir + +exit 0 |