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