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