]> git.pld-linux.org Git - packages/fontpostinst.git/blob - fontpostinst
- exit if cd fails (otherwise font-cache files could be placed in whole filesystem)
[packages/fontpostinst.git] / fontpostinst
1 #!/bin/sh
2
3 # $Id$
4
5 # Requires: /bin/sh textutils fileutils
6 # optionally:
7 #       mkfontdir, mkfontscale (XFree86)  (or ttmkfdir - for TTF only)
8 #       fc-cache (fontconfig or XFree86-fontconfig)
9 #       gnome-font-install (gnome-print)
10 #       t1libconfig (t1lib)
11
12 FBASEDIR="/usr/share/fonts"
13
14 MKFONTDIRBIN="/usr/X11R6/bin/mkfontdir"
15 MKFONTDIR="$MKFONTDIRBIN"
16 MKFONTSCALEBIN="/usr/X11R6/bin/mkfontscale"
17 MKFONTSCALE="$MKFONTSCALEBIN"
18
19 MKTTFFONTSCALEBIN="$MKFONTSCALEBIN"
20 MKTTFFONTSCALE="$MKTTFFONTSCALEBIN"
21 if [ ! -x "$MKFONTSCALEBIN" -a -x /usr/bin/ttmkfdir ]; then
22         # fallback for X <= 4.2.x
23         MKTTFFONTSCALEBIN="/usr/bin/ttmkfdir"
24         MKTTFFONTSCALE="$MKFONTSCALEBIN -e /usr/share/fonts/encodings/encodings.dir"
25 fi
26
27 FCCACHEBIN="/usr/bin/fc-cache"
28 if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/fc-cache ]; then
29         # use XFree86-fontconfig
30         FCCACHEBIN="/usr/X11R6/bin/fc-cache"
31 fi
32 if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/xftcache ]; then
33         # fallback for XFree86 4.[0-2]
34         FCCACHEBIN="/usr/X11R6/bin/xftcache"
35 fi
36 FCCACHE="$FCCACHEBIN ."
37
38 GNOMEFONTINSTBIN="/usr/bin/gnome-font-install"
39 if [ ! -x $GNOMEFONTINSTBIN -a -x /usr/X11R6/bin/gnome-font-install ]; then
40         # fallback for Ra
41         GNOMEFONTINSTBIN="/usr/X11R6/bin/gnome-font-install"
42 fi
43 GNOMEFONTINST="$GNOMEFONTINSTBIN --target $FBASEDIR/fontmap"
44
45 T1LIBCONFIGBIN="/usr/bin/t1libconfig"
46 T1LIBCONFIG="$T1LIBCONFIGBIN --force"
47
48 if [ -z "$1" ]; then
49         echo "Usage: fontpostinst TYPE [DIR]"
50         echo "  TYPE is one of:"
51         echo "    OTF, TTF, Type1, misc, 100dpi, 75dpi, cyrillic, local, CID, Speedo, PEX"
52         echo "  default DIR is $FBASEDIR/TYPE"
53         exit 1
54 fi
55
56 FTYPE="$1"
57 if [ -z "$2" ]; then
58         FDIR="$FBASEDIR/$FTYPE"
59 else
60         FDIR="$2"
61 fi
62
63 umask 022
64 cd "$FDIR" || exit $?
65 if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then
66         cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias
67 elif [ -f fonts.alias ]; then
68         mv -f fonts.alias fonts.alias-save
69 fi
70 case "$FTYPE" in
71     OTF|TTF)
72         if [ -x $MKTTFFONTSCALEBIN ]; then
73                 $MKTTFFONTSCALE
74         fi
75         if [ -x $MKFONTDIRBIN ]; then
76                 $MKFONTDIR
77         fi
78         if [ -x $FCCACHEBIN ]; then
79                 $FCCACHE
80         fi
81         ;;
82     Type1)
83         rm -f fonts.scale.bak Fontmap.bak
84         if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
85                 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
86                 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
87                 cat fonts.scale.tmp >> fonts.scale
88                 rm -f fonts.scale.tmp
89         elif [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then
90                 # no hints - try to generate
91                 if [ -x $MKFONTSCALEBIN ]; then
92                         $MKFONTSCALE
93                 fi
94         elif [ -f fonts.scale ]; then
95                 mv -f fonts.scale fonts.scale-save
96         fi
97         if [ -x $MKFONTDIRBIN ]; then
98                 $MKFONTDIR
99         fi
100         if [ -x $FCCACHEBIN ]; then
101                 $FCCACHE
102         fi
103         if [ "`echo Fontmap.*`" != 'Fontmap.*' ]; then
104                 cat Fontmap.* > Fontmap
105         elif [ -f Fontmap ]; then
106                 mv -f Fontmap Fontmap-save
107         fi
108         if [ -x $GNOMEFONTINSTBIN ]; then
109                 $GNOMEFONTINST
110         fi
111         if [ -x $T1LIBCONFIGBIN ]; then
112                 $T1LIBCONFIG
113         fi
114         ;;
115     CID|Speedo)
116         if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
117                 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
118                 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
119                 cat fonts.scale.tmp >> fonts.scale
120                 rm -f fonts.scale.tmp
121         elif [ -f fonts.scale ]; then
122                 mv -f fonts.scale fonts.scale-save
123         fi
124         if [ -x $MKFONTDIRBIN ]; then
125                 $MKFONTDIR
126         fi
127         ;;
128     misc)
129         # special case - fonts needed for X server to start
130         if [ -x $MKFONTDIRBIN ]; then
131                 $MKFONTDIR
132         elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then
133                 cat > fonts.dir <<EOF
134 2
135 6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
136 cursor.pcf.gz cursor
137 EOF
138         fi
139         if [ -x $FCCACHEBIN ]; then
140                 $FCCACHE
141         fi
142         ;;
143     100dpi|75dpi|cyrillic|local)
144         if [ -x $MKFONTDIRBIN ]; then
145                 $MKFONTDIR
146         fi
147         if [ -x $FCCACHEBIN ]; then
148                 $FCCACHE
149         fi
150         ;;
151     PEX)
152         ;;
153     *)
154         echo "Warning: \"$FTYPE\": unknown font type!" >&2
155         if [ -x $MKFONTDIRBIN ]; then
156                 $MKFONTDIR
157         fi
158 esac
This page took 0.058561 seconds and 3 git commands to generate.