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