]>
Commit | Line | Data |
---|---|---|
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 | ||
9 | FBASEDIR="/usr/share/fonts" | |
10 | ||
11 | MKFONTDIRBIN="/usr/X11R6/bin/mkfontdir" | |
12 | MKFONTDIR="$MKFONTDIRBIN" | |
13 | MKFONTSCALEBIN="/usr/X11R6/bin/mkfontscale" | |
14 | MKFONTSCALE="$MKFONTSCALEBIN" | |
15 | ||
16 | MKTTFFONTSCALEBIN="$MKFONTSCALEBIN" | |
17 | MKTTFFONTSCALE="$MKTTFFONTSCALEBIN" | |
6c6cfd26 JB |
18 | if [ ! -x "$MKFONTSCALEBIN" -a -f /usr/bin/ttmkfdir ]; then |
19 | # fallback for X <= 4.2.x | |
20 | MKTTFFONTSCALEBIN="/usr/bin/ttmkfdir" | |
21 | MKTTFFONTSCALE="$MKFONTSCALEBIN -e /usr/share/fonts/encodings/encodings.dir" | |
22 | fi | |
30a68956 JB |
23 | |
24 | FCCACHEBIN="/usr/X11R6/bin/fc-cache" | |
25 | if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/xftcache ]; then | |
26 | # fallback for XFree86 4.[0-2] | |
27 | FCCACHEBIN="/usr/X11R6/bin/xftcache" | |
28 | fi | |
29 | FCCACHE="$FCCACHEBIN ." | |
30 | ||
31 | GNOMEFONTINSTBIN="/usr/bin/gnome-font-install" | |
32 | if [ ! -x $GNOMEFONTINSTBIN -a -x /usr/X11R6/bin/gnome-font-install ]; then | |
33 | # fallback for Ra | |
34 | GNOMEFONTINSTBIN="/usr/X11R6/bin/gnome-font-install" | |
35 | fi | |
36 | GNOMEFONTINST="$GNOMEFONTINSTBIN --target $FBASEDIR/fontmap" | |
37 | ||
38 | if [ -z "$1" ]; then | |
39 | echo "Usage: fontpostinst TYPE [DIR]" | |
3dad4003 JB |
40 | echo " TYPE is one of:" |
41 | echo " OTF, TTF, Type1, misc, 100dpi, 75dpi, cyrillic, local, CID, Speedo, PEX" | |
30a68956 JB |
42 | echo " default DIR is $FBASEDIR/TYPE" |
43 | exit 1 | |
44 | fi | |
45 | ||
46 | FTYPE="$1" | |
47 | if [ -z "$2" ]; then | |
48 | FDIR="$FBASEDIR/$FTYPE" | |
49 | else | |
50 | FDIR="$2" | |
51 | fi | |
52 | ||
53 | umask 022 | |
54 | cd "$FDIR" | |
55 | if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then | |
56 | cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias | |
6c6cfd26 JB |
57 | elif [ -f fonts.alias ]; then |
58 | mv -f fonts.alias fonts.alias-save | |
30a68956 JB |
59 | fi |
60 | case "$FTYPE" in | |
61 | OTF|TTF) | |
62 | if [ -x $MKTTFFONTSCALEBIN ]; then | |
63 | $MKTTFFONTSCALE | |
64 | fi | |
65 | if [ -x $MKFONTDIRBIN ]; then | |
66 | $MKFONTDIR | |
67 | fi | |
68 | if [ -x $FCCACHEBIN ]; then | |
69 | $FCCACHE | |
70 | elif [ -x $XFTCACHEBIN ]; then | |
71 | $XFTCACHE | |
72 | fi | |
73 | ;; | |
74 | Type1) | |
75 | rm -f fonts.scale.bak Fontmap.bak | |
89af5b6f | 76 | if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then |
30a68956 JB |
77 | cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp |
78 | cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale | |
79 | cat fonts.scale.tmp >> fonts.scale | |
80 | rm -f fonts.scale.tmp | |
89af5b6f | 81 | elif [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then |
30a68956 JB |
82 | # no hints - try to generate |
83 | if [ -x $MKFONTSCALEBIN ]; then | |
84 | $MKFONTSCALE | |
85 | fi | |
6c6cfd26 JB |
86 | elif [ -f fonts.scale ]; then |
87 | mv -f fonts.scale fonts.scale-save | |
30a68956 JB |
88 | fi |
89 | if [ -x $MKFONTDIRBIN ]; then | |
90 | $MKFONTDIR | |
91 | fi | |
92 | if [ -x $FCCACHEBIN ]; then | |
93 | $FCCACHE | |
94 | elif [ -x $XFTCACHEBIN ]; then | |
95 | $XFTCACHE | |
96 | fi | |
89af5b6f | 97 | if [ "`echo Fontmap.*`" != 'Fontmap.*' ]; then |
30a68956 | 98 | cat Fontmap.* > Fontmap |
6c6cfd26 JB |
99 | elif [ -f Fontmap ]; then |
100 | mv -f Fontmap Fontmap-save | |
30a68956 JB |
101 | fi |
102 | if [ -x $GNOMEFONTINSTBIN ]; then | |
103 | $GNOMEFONTINST | |
104 | fi | |
105 | ;; | |
517672d5 | 106 | CID|Speedo) |
89af5b6f | 107 | if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then |
517672d5 JB |
108 | cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp |
109 | cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale | |
110 | cat fonts.scale.tmp >> fonts.scale | |
111 | rm -f fonts.scale.tmp | |
112 | elif [ -f fonts.scale ]; then | |
113 | mv -f fonts.scale fonts.scale-save | |
114 | fi | |
115 | if [ -x $MKFONTDIRBIN ]; then | |
116 | $MKFONTDIR | |
117 | fi | |
89af5b6f | 118 | ;; |
30a68956 JB |
119 | misc) |
120 | # special case - fonts needed for X server to start | |
121 | if [ -x $MKFONTDIRBIN ]; then | |
122 | $MKFONTDIR | |
123 | elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then | |
124 | cat > fonts.dir <<EOF | |
125 | 2 | |
126 | 6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 | |
127 | cursor.pcf.gz cursor | |
128 | EOF | |
129 | fi | |
130 | ;; | |
3dad4003 | 131 | 100dpi|75dpi|cyrillic|local) |
30a68956 JB |
132 | if [ -x $MKFONTDIRBIN ]; then |
133 | $MKFONTDIR | |
134 | fi | |
135 | ;; | |
517672d5 JB |
136 | PEX) |
137 | ;; | |
30a68956 JB |
138 | *) |
139 | echo "Warning: \"$FTYPE\": unknown font type!" >&2 | |
140 | if [ -x $MKFONTDIRBIN ]; then | |
141 | $MKFONTDIR | |
142 | fi | |
143 | esac |