home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / sbin / update-fonts-scale < prev    next >
Text File  |  1999-09-19  |  2KB  |  59 lines

  1. #!/bin/sh
  2. # update-fonts-scale
  3. # compiles fonts.scale files for X font directories
  4. # see mkfontdir(1) for a description of the format of fonts.scale files
  5. # Copyright 1999 Branden Robinson.  Licensed under the GNU GPL, version 2.
  6.  
  7. if [ $# -eq 0 ]; then
  8.   echo "$0: one or more font directories must be provided."
  9.   exit 1
  10. fi
  11.  
  12. while [ "$1" ]; do
  13.   # try to be clever about the arguments
  14.   if [ "$(echo $1 | cut -c1)" = "/" ]; then
  15.     # absolute path to X font directory was provided
  16.     XDIR=$1
  17.     ETCDIR=/etc/X11/fonts/$(basename $XDIR)
  18.     if [ "$XDIR" = "$ETCDIR" ]; then
  19.       # they gave us an /etc directory as the argument
  20.       echo "$0: path to X font directory must be used."
  21.       exit 1
  22.     fi
  23.   else
  24.     # assume they just gave us the basename
  25.     XDIR=/usr/lib/X11/fonts/$1
  26.     ETCDIR=/etc/X11/fonts/$1
  27.   fi
  28.   for dir in $XDIR $ETCDIR; do
  29.     valid=yes
  30.     if [ ! -d $dir ]; then
  31.       echo "$0: $dir does not exist or is not a directory."
  32.       valid=
  33.     fi
  34.   done
  35.   if [ "$valid" ]; then
  36.     if [ -e $XDIR/fonts.scale ]; then
  37.       # backup old fonts.scale file in case we are interrupted
  38.       cp $XDIR/fonts.scale $XDIR/fonts.scale.update-backup
  39.     fi
  40.     # are there any files to process?
  41.     if [ "$(echo $ETCDIR/*.scale)" != "$ETCDIR/*.scale" ]; then 
  42.       for file in $ETCDIR/*.scale; do
  43.         tail +2 $file >> $XDIR/fonts.scale.update-tmp
  44.       done
  45.       cat $XDIR/fonts.scale.update-tmp | wc -l | tr -d '[:blank:]' > $XDIR/fonts.scale
  46.       cat $XDIR/fonts.scale.update-tmp >> $XDIR/fonts.scale
  47.       rm $XDIR/fonts.scale.update-tmp
  48.     fi
  49.   fi
  50.   shift
  51. done
  52.  
  53. if [ -e $XDIR/fonts.scale.update-backup ]; then
  54.   # we are done, remove the backup file
  55.   rm $XDIR/fonts.scale.update-backup
  56. fi
  57.  
  58. exit
  59.