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