]> git.pld-linux.org Git - packages/fontpostinst.git/blame - fontpostinst
- rel 16
[packages/fontpostinst.git] / fontpostinst
CommitLineData
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 14
c651e524 15PROGRAM=${0##*/}
c2ab89c9 16
30a68956
JB
17FBASEDIR="/usr/share/fonts"
18
4c0d7897 19MKFONTDIRBIN="/usr/bin/mkfontdir"
30a68956 20MKFONTDIR="$MKFONTDIRBIN"
4c0d7897
AM
21if [ ! -x "$MKFONTDIRBIN" -a -x /usr/X11R6/bin/mkfontdir ]; then
22 MKFONTDIR="/usr/X11R6/bin/mkfontdir"
23fi
24MKFONTSCALEBIN="/usr/bin/mkfontscale"
30a68956 25MKFONTSCALE="$MKFONTSCALEBIN"
4c0d7897
AM
26if [ ! -x "$MKFONTSCALEBIN" -a -x /usr/X11R6/bin/mkfontscale ]; then
27 MKFONTSCALEBIN="/usr/X11R6/bin/mkfontscale"
28fi
30a68956
JB
29MKTTFFONTSCALEBIN="$MKFONTSCALEBIN"
30MKTTFFONTSCALE="$MKTTFFONTSCALEBIN"
b8080bad 31if [ ! -x "$MKFONTSCALEBIN" -a -x /usr/bin/ttmkfdir ]; then
6c6cfd26
JB
32 # fallback for X <= 4.2.x
33 MKTTFFONTSCALEBIN="/usr/bin/ttmkfdir"
34 MKTTFFONTSCALE="$MKFONTSCALEBIN -e /usr/share/fonts/encodings/encodings.dir"
35fi
30a68956 36
8eaa9ee5
TP
37FCCACHEBIN="/usr/bin/fc-cache"
38if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/fc-cache ]; then
39 # use XFree86-fontconfig
40 FCCACHEBIN="/usr/X11R6/bin/fc-cache"
41fi
30a68956
JB
42if [ ! -x $FCCACHEBIN -a -x /usr/X11R6/bin/xftcache ]; then
43 # fallback for XFree86 4.[0-2]
44 FCCACHEBIN="/usr/X11R6/bin/xftcache"
45fi
46FCCACHE="$FCCACHEBIN ."
47
48GNOMEFONTINSTBIN="/usr/bin/gnome-font-install"
49if [ ! -x $GNOMEFONTINSTBIN -a -x /usr/X11R6/bin/gnome-font-install ]; then
50 # fallback for Ra
51 GNOMEFONTINSTBIN="/usr/X11R6/bin/gnome-font-install"
52fi
53GNOMEFONTINST="$GNOMEFONTINSTBIN --target $FBASEDIR/fontmap"
54
b8080bad
AF
55T1LIBCONFIGBIN="/usr/bin/t1libconfig"
56T1LIBCONFIG="$T1LIBCONFIGBIN --force"
57
30a68956 58if [ -z "$1" ]; then
c2ab89c9
AM
59 echo >&2 "Usage: $PROGRAM TYPE [DIR]"
60 echo >&2 " TYPE is one of:"
61 echo >&2 " OTF, TTF, Type1, misc, 100dpi, 75dpi, cyrillic, local, CID, Speedo, PEX"
62 echo >&2 " default DIR is $FBASEDIR/TYPE"
30a68956
JB
63 exit 1
64fi
8eaa9ee5 65
2709e8aa
JB
66VERBOSE=0
67if [ "$1" = "-v" ]; then
68 VERBOSE=1
69 shift
70fi
71
72verb() {
73 if [ "$VERBOSE" = "1" ]; then
74 echo >&2 "$1"
75 fi
76}
77
30a68956
JB
78FTYPE="$1"
79if [ -z "$2" ]; then
80 FDIR="$FBASEDIR/$FTYPE"
81else
82 FDIR="$2"
83fi
84
85umask 022
85ae292a 86cd "$FDIR" || exit 0
30a68956
JB
87if [ "`echo fonts.alias.*`" != 'fonts.alias.*' ]; then
88 cat fonts.alias.* | LC_ALL=C sort -u > fonts.alias
6c6cfd26
JB
89elif [ -f fonts.alias ]; then
90 mv -f fonts.alias fonts.alias-save
30a68956 91fi
2709e8aa 92verb "$PROGRAM: Updating for $FTYPE..."
30a68956
JB
93case "$FTYPE" in
94 OTF|TTF)
95 if [ -x $MKTTFFONTSCALEBIN ]; then
2709e8aa 96 verb "$PROGRAM: Running $MKTTFFONTSCALEBIN."
30a68956
JB
97 $MKTTFFONTSCALE
98 fi
99 if [ -x $MKFONTDIRBIN ]; then
2709e8aa 100 verb "$PROGRAM: Running $MKFONTDIRBIN."
30a68956
JB
101 $MKFONTDIR
102 fi
103 if [ -x $FCCACHEBIN ]; then
2709e8aa 104 verb "$PROGRAM: Running $FCCACHEBIN."
30a68956 105 $FCCACHE
30a68956
JB
106 fi
107 ;;
108 Type1)
109 rm -f fonts.scale.bak Fontmap.bak
89af5b6f 110 if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
2709e8aa 111 verb "$PROGRAM: Merging fonts.scale.* files."
30a68956
JB
112 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
113 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
114 cat fonts.scale.tmp >> fonts.scale
115 rm -f fonts.scale.tmp
89af5b6f 116 elif [ "`echo *.pf[ab]`" != '*.pf[ab]' ]; then
30a68956
JB
117 # no hints - try to generate
118 if [ -x $MKFONTSCALEBIN ]; then
2709e8aa 119 verb "$PROGRAM: Running $MKFONTSCALEBIN."
30a68956
JB
120 $MKFONTSCALE
121 fi
6c6cfd26
JB
122 elif [ -f fonts.scale ]; then
123 mv -f fonts.scale fonts.scale-save
30a68956
JB
124 fi
125 if [ -x $MKFONTDIRBIN ]; then
2709e8aa 126 verb "$PROGRAM: Running $MKFONTDIRBIN."
30a68956
JB
127 $MKFONTDIR
128 fi
129 if [ -x $FCCACHEBIN ]; then
2709e8aa 130 verb "$PROGRAM: Running $FCCACHEBIN."
30a68956 131 $FCCACHE
30a68956 132 fi
89af5b6f 133 if [ "`echo Fontmap.*`" != 'Fontmap.*' ]; then
2709e8aa 134 verb "$PROGRAM: Merging Fontmap.* files."
30a68956 135 cat Fontmap.* > Fontmap
6c6cfd26
JB
136 elif [ -f Fontmap ]; then
137 mv -f Fontmap Fontmap-save
30a68956
JB
138 fi
139 if [ -x $GNOMEFONTINSTBIN ]; then
2709e8aa 140 verb "$PROGRAM: Running $GNOMEFONTINSTBIN."
30a68956
JB
141 $GNOMEFONTINST
142 fi
b8080bad 143 if [ -x $T1LIBCONFIGBIN ]; then
2709e8aa 144 verb "$PROGRAM: Running $T1LIBCONFIGBIN."
b8080bad
AF
145 $T1LIBCONFIG
146 fi
30a68956 147 ;;
517672d5 148 CID|Speedo)
89af5b6f 149 if [ "`echo fonts.scale.*`" != 'fonts.scale.*' ]; then
2709e8aa 150 verb "$PROGRAM: Merging fonts.scale.* files."
517672d5
JB
151 cat fonts.scale.* 2>/dev/null | LC_ALL=C sort -u > fonts.scale.tmp
152 cat fonts.scale.tmp | wc -l | tr -d ' ' > fonts.scale
153 cat fonts.scale.tmp >> fonts.scale
154 rm -f fonts.scale.tmp
155 elif [ -f fonts.scale ]; then
156 mv -f fonts.scale fonts.scale-save
157 fi
158 if [ -x $MKFONTDIRBIN ]; then
2709e8aa 159 verb "$PROGRAM: Running $MKFONTDIRBIN."
517672d5
JB
160 $MKFONTDIR
161 fi
89af5b6f 162 ;;
30a68956
JB
163 misc)
164 # special case - fonts needed for X server to start
165 if [ -x $MKFONTDIRBIN ]; then
2709e8aa 166 verb "$PROGRAM: Running $MKFONTDIRBIN."
30a68956
JB
167 $MKFONTDIR
168 elif [ -f 6x13-ISO8859-1.pcf.gz -a -f cursor.pcf.gz ]; then
169 cat > fonts.dir <<EOF
1702
1716x13-ISO8859-1.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
172cursor.pcf.gz cursor
173EOF
174 fi
8eaa9ee5 175 if [ -x $FCCACHEBIN ]; then
2709e8aa 176 verb "$PROGRAM: Running $FCCACHEBIN."
8eaa9ee5
TP
177 $FCCACHE
178 fi
30a68956 179 ;;
9459b6cf 180 100dpi|75dpi|cyrillic|local)
30a68956 181 if [ -x $MKFONTDIRBIN ]; then
2709e8aa 182 verb "$PROGRAM: Running $MKFONTDIRBIN."
30a68956
JB
183 $MKFONTDIR
184 fi
8eaa9ee5 185 if [ -x $FCCACHEBIN ]; then
2709e8aa 186 verb "$PROGRAM: Running $FCCACHEBIN."
8eaa9ee5
TP
187 $FCCACHE
188 fi
30a68956 189 ;;
517672d5
JB
190 PEX)
191 ;;
30a68956 192 *)
2709e8aa 193 echo >&2 "Warning: \"$FTYPE\": unknown font type!" >&2
30a68956 194 if [ -x $MKFONTDIRBIN ]; then
2709e8aa 195 verb "$PROGRAM: Running $MKFONTDIRBIN."
30a68956
JB
196 $MKFONTDIR
197 fi
198esac
85ae292a 199exit 0
This page took 0.340741 seconds and 4 git commands to generate.