]>
Commit | Line | Data |
---|---|---|
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 | |
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" | |
b8080bad | 21 | if [ ! -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" | |
25 | fi | |
30a68956 | 26 | |
8eaa9ee5 TP |
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 | |
30a68956 JB |
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 | ||
b8080bad AF |
45 | T1LIBCONFIGBIN="/usr/bin/t1libconfig" |
46 | T1LIBCONFIG="$T1LIBCONFIGBIN --force" | |
47 | ||
30a68956 JB |
48 | if [ -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 | |
54 | fi | |
8eaa9ee5 | 55 | |
30a68956 JB |
56 | FTYPE="$1" |
57 | if [ -z "$2" ]; then | |
58 | FDIR="$FBASEDIR/$FTYPE" | |
59 | else | |
60 | FDIR="$2" | |
61 | fi | |
62 | ||
63 | umask 022 | |
49d310cc | 64 | cd "$FDIR" || exit $? |
30a68956 JB |
65 | if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then |
66 | cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias | |
6c6cfd26 JB |
67 | elif [ -f fonts.alias ]; then |
68 | mv -f fonts.alias fonts.alias-save | |
30a68956 JB |
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 | |
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 | |
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 | |
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 | |
158 | esac |