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