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