/usr/sbin/update-fonts-dir is in xfonts-utils 1:7.7+6.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | #!/bin/sh
# $Id: update-fonts-dir 189 2005-06-11 00:04:27Z branden $
# This program compiles fonts.dir files for X font directories; see
# mkfontdir(1x) for a description of the format of fonts.dir files.
# Copyright 1999, 2001, 2002, 2004 Branden Robinson.
# Licensed under the GNU General Public License, version 2. See the file
# /usr/share/common-licenses/GPL or <https://www.gnu.org/copyleft/gpl.txt>.
PROGNAME=${0##*/}
ENCDIR=/usr/share/fonts/X11/encodings
# Query the terminal to establish a default number of columns to use for
# displaying messages to the user. This is used only as a fallback in the event
# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the
# script is running, and this cannot, only being calculated once.)
DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then
DEFCOLUMNS=80
fi
# Display a message, wrapping lines at the terminal width.
message () {
echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
}
# Display a warning message.
warn () {
message "warning: $*" >&2
}
# Display an error message and exit.
die () {
message "fatal error: $*" >&2
exit 1
}
# Display a usage message.
usage () {
if [ -n "$*" ]; then
message "usage error: $*"
fi
cat <<EOF
Usage: $PROGNAME DIRECTORY ...
$PROGNAME { -7 | --x11r7-layout } DIRECTORY ...
$PROGNAME { -h | --help }
This program combines X font alias information from several packages into a
single file that is placed in each specified X font directory DIRECTORY. This
utility is primarily useful to Debian package maintainer scripts. See
update-fonts-dir(8) for more information.
Options:
-h, --help display this usage message and exit
-7, --x11r7-layout use new font layout introduced with X11R7
EOF
}
X11R7_LAYOUT=
# Validate arguments.
case "$1" in
-h|--help)
usage
exit 0
;;
-7|--x11r7-layout)
X11R7_LAYOUT=true
shift
;;
esac
case "$1" in
-*)
usage "unrecognized option" >&2
exit 2
;;
esac
if [ $# -eq 0 ]; then
usage "one or more font directories must be specified" >&2
exit 2
fi
while [ -n "$1" ]; do
# Try to be clever about the argument; were we given an absolute path?
if expr "$1" : "/.*" >/dev/null 2>&1; then
# Yes; an absolute path to an X font directory was provided.
XDIRS=$1
if [ -n "$X11R7_LAYOUT" ]; then
ETCDIR=/etc/X11/fonts/X11R7/${XDIRS##*/}
else
ETCDIR=/etc/X11/fonts/${XDIRS##*/}
fi
if [ "$XDIRS" = "$ETCDIR" ]; then
# We were given an /etc directory as an argument.
die "path to X font directory must be used"
else
warn "absolute path $XDIRS was provided"
fi
else
# No; a relative path was provided -- assume we were given just the
# basename.
XDIRS="/usr/share/fonts/X11/$1"
fi
# Confirm that the directories to be operated on exist.
for XDIR in $XDIRS; do
VALID=yes
if ! [ -d "$XDIR" ]; then
warn "$XDIR does not exist or is not a directory"
VALID=
fi
if [ -n "$VALID" ]; then
# Use encoding directories if they are available.
if [ -d "$ENCDIR" ] && [ -d "$ENCDIR/large" ]; then
mkfontdir -e "$ENCDIR" -e "$ENCDIR/large" "$XDIR"
else
mkfontdir "$XDIR"
fi
# Are there any fonts in the font directory?
if [ "$(head -n 1 "$XDIR/fonts.dir")" = "0" ]; then
# There are no files to process; remove any generated files already
# in the font directory.
rm -f "$XDIR/fonts.dir" "$XDIR/encodings.dir"
# Remove the font dirextory if it is empty.
rmdir "$XDIR" >/dev/null 2>&1 || true
fi
fi
done
shift
done
exit 0
# vim:set ai et sts=4 sw=4 tw=80:
|