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