]>
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]" | |
40 | echo " TYPE is one of OTF, TTF, Type1, misc, 100dpi, 75dpi, CID, Speedo, PEX" | |
41 | echo " default DIR is $FBASEDIR/TYPE" | |
42 | exit 1 | |
43 | fi | |
44 | ||
45 | FTYPE="$1" | |
46 | if [ -z "$2" ]; then | |
47 | FDIR="$FBASEDIR/$FTYPE" | |
48 | else | |
49 | FDIR="$2" | |
50 | fi | |
51 | ||
52 | umask 022 | |
53 | cd "$FDIR" | |
54 | if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then | |
55 | cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias | |
6c6cfd26 JB |
56 | elif [ -f fonts.alias ]; then |
57 | mv -f fonts.alias fonts.alias-save | |
30a68956 JB |
58 | fi |
59 | case "$FTYPE" in | |
60 | OTF|TTF) | |
61 | if [ -x $MKTTFFONTSCALEBIN ]; then | |
62 | $MKTTFFONTSCALE | |
63 | fi | |
64 | if [ -x $MKFONTDIRBIN ]; then | |
65 | $MKFONTDIR | |
66 | fi | |
67 | if [ -x $FCCACHEBIN ]; then | |
68 | $FCCACHE | |
69 | elif [ -x $XFTCACHEBIN ]; then | |
70 | $XFTCACHE | |
71 | fi | |
72 | ;; | |
73 | Type1) | |
74 | rm -f fonts.scale.bak Fontmap.bak | |
89af5b6f | 75 | if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then |
30a68956 JB |
76 | cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp |
77 | cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale | |
78 | cat fonts.scale.tmp >> fonts.scale | |
79 | rm -f fonts.scale.tmp | |
89af5b6f | 80 | elif [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then |
30a68956 JB |
81 | # no hints - try to generate |
82 | if [ -x $MKFONTSCALEBIN ]; then | |
83 | $MKFONTSCALE | |
84 | fi | |
6c6cfd26 JB |
85 | elif [ -f fonts.scale ]; then |
86 | mv -f fonts.scale fonts.scale-save | |
30a68956 JB |
87 | fi |
88 | if [ -x $MKFONTDIRBIN ]; then | |
89 | $MKFONTDIR | |
90 | fi | |
91 | if [ -x $FCCACHEBIN ]; then | |
92 | $FCCACHE | |
93 | elif [ -x $XFTCACHEBIN ]; then | |
94 | $XFTCACHE | |
95 | fi | |
89af5b6f | 96 | if [ "`echo Fontmap.*`" != 'Fontmap.*' ]; then |
30a68956 | 97 | cat Fontmap.* > Fontmap |
6c6cfd26 JB |
98 | elif [ -f Fontmap ]; then |
99 | mv -f Fontmap Fontmap-save | |
30a68956 JB |
100 | fi |
101 | if [ -x $GNOMEFONTINSTBIN ]; then | |
102 | $GNOMEFONTINST | |
103 | fi | |
104 | ;; | |
517672d5 | 105 | CID|Speedo) |
89af5b6f | 106 | if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then |
517672d5 JB |
107 | cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp |
108 | cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale | |
109 | cat fonts.scale.tmp >> fonts.scale | |
110 | rm -f fonts.scale.tmp | |
111 | elif [ -f fonts.scale ]; then | |
112 | mv -f fonts.scale fonts.scale-save | |
113 | fi | |
114 | if [ -x $MKFONTDIRBIN ]; then | |
115 | $MKFONTDIR | |
116 | fi | |
89af5b6f | 117 | ;; |
30a68956 JB |
118 | misc) |
119 | # special case - fonts needed for X server to start | |
120 | if [ -x $MKFONTDIRBIN ]; then | |
121 | $MKFONTDIR | |
122 | elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then | |
123 | cat > fonts.dir <<EOF | |
124 | 2 | |
125 | 6x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 | |
126 | cursor.pcf.gz cursor | |
127 | EOF | |
128 | fi | |
129 | ;; | |
517672d5 | 130 | 100dpi|75dpi|cyrillic) |
30a68956 JB |
131 | if [ -x $MKFONTDIRBIN ]; then |
132 | $MKFONTDIR | |
133 | fi | |
134 | ;; | |
517672d5 JB |
135 | PEX) |
136 | ;; | |
30a68956 JB |
137 | *) |
138 | echo "Warning: \"$FTYPE\": unknown font type!" >&2 | |
139 | if [ -x $MKFONTDIRBIN ]; then | |
140 | $MKFONTDIR | |
141 | fi | |
142 | esac |