]> git.pld-linux.org Git - packages/fontpostinst.git/blame - fontpostinst
- new script: font post(un)installation tool (untested, needs review)
[packages/fontpostinst.git] / fontpostinst
CommitLineData
30a68956
JB
1#!/bin/sh
2
3# Requires: /bin/sh textutils fileutils
4# optionally:
5# mkfontdir, mkfontscale (XFree86) (or ttmkfdir - for TTF only)
6# fc-cache (XFree86-fontconfig)
7# gnome-font-install (gnome-print)
8
9FBASEDIR="/usr/share/fonts"
10
11MKFONTDIRBIN="/usr/X11R6/bin/mkfontdir"
12MKFONTDIR="$MKFONTDIRBIN"
13MKFONTSCALEBIN="/usr/X11R6/bin/mkfontscale"
14MKFONTSCALE="$MKFONTSCALEBIN"
15
16MKTTFFONTSCALEBIN="$MKFONTSCALEBIN"
17MKTTFFONTSCALE="$MKTTFFONTSCALEBIN"
18#MKTTFFONTSCALEBIN="/usr/bin/ttmkfdir"
19#MKTTFFONTSCALE="$MKFONTSCALEBIN -e /usr/share/fonts/encodings/encodings.dir"
20
21FCCACHEBIN="/usr/X11R6/bin/fc-cache"
22if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/xftcache ]; then
23 # fallback for XFree86 4.[0-2]
24 FCCACHEBIN="/usr/X11R6/bin/xftcache"
25fi
26FCCACHE="$FCCACHEBIN ."
27
28GNOMEFONTINSTBIN="/usr/bin/gnome-font-install"
29if [ ! -x $GNOMEFONTINSTBIN -a -x /usr/X11R6/bin/gnome-font-install ]; then
30 # fallback for Ra
31 GNOMEFONTINSTBIN="/usr/X11R6/bin/gnome-font-install"
32fi
33GNOMEFONTINST="$GNOMEFONTINSTBIN --target $FBASEDIR/fontmap"
34
35if [ -z "$1" ]; then
36 echo "Usage: fontpostinst TYPE [DIR]"
37 echo " TYPE is one of OTF, TTF, Type1, misc, 100dpi, 75dpi, CID, Speedo, PEX"
38 echo " default DIR is $FBASEDIR/TYPE"
39 exit 1
40fi
41
42FTYPE="$1"
43if [ -z "$2" ]; then
44 FDIR="$FBASEDIR/$FTYPE"
45else
46 FDIR="$2"
47fi
48
49umask 022
50cd "$FDIR"
51if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then
52 cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias
53else
54 rm -f fonts.alias
55fi
56case "$FTYPE" in
57 OTF|TTF)
58 if [ -x $MKTTFFONTSCALEBIN ]; then
59 $MKTTFFONTSCALE
60 fi
61 if [ -x $MKFONTDIRBIN ]; then
62 $MKFONTDIR
63 fi
64 if [ -x $FCCACHEBIN ]; then
65 $FCCACHE
66 elif [ -x $XFTCACHEBIN ]; then
67 $XFTCACHE
68 fi
69 ;;
70 Type1)
71 rm -f fonts.scale.bak Fontmap.bak
72 if "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
73 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
74 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
75 cat fonts.scale.tmp >> fonts.scale
76 rm -f fonts.scale.tmp
77 else if [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then
78 # no hints - try to generate
79 if [ -x $MKFONTSCALEBIN ]; then
80 $MKFONTSCALE
81 fi
82 else
83 rm -f fonts.scale
84 fi
85 if [ -x $MKFONTDIRBIN ]; then
86 $MKFONTDIR
87 fi
88 if [ -x $FCCACHEBIN ]; then
89 $FCCACHE
90 elif [ -x $XFTCACHEBIN ]; then
91 $XFTCACHE
92 fi
93 if "`echo Fontmap.*`" != 'Fontmap.*' ]; then
94 cat Fontmap.* > Fontmap
95 else
96 rm -f Fontmap
97 fi
98 if [ -x $GNOMEFONTINSTBIN ]; then
99 $GNOMEFONTINST
100 fi
101 ;;
102 misc)
103 # special case - fonts needed for X server to start
104 if [ -x $MKFONTDIRBIN ]; then
105 $MKFONTDIR
106 elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then
107 cat > fonts.dir <<EOF
1082
1096x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
110cursor.pcf.gz cursor
111EOF
112 fi
113 ;;
114 100dpi|75dpi|CID|Speedo|PEX)
115 if [ -x $MKFONTDIRBIN ]; then
116 $MKFONTDIR
117 fi
118 ;;
119 *)
120 echo "Warning: \"$FTYPE\": unknown font type!" >&2
121 if [ -x $MKFONTDIRBIN ]; then
122 $MKFONTDIR
123 fi
124esac
This page took 0.126283 seconds and 4 git commands to generate.