usr/src/cmd/foomatic-ppd/cache.ksh
author Jon Tibble <meths@btinternet.com>
Mon, 04 May 2015 14:04:39 +0100
branchoi_151a
changeset 254 9c2a4ac793f0
parent 0 b34509ac961f
permissions -rwxr-xr-x
Bash patch catchup including shellshock

#!/usr/bin/ksh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"@(#)cache.ksh	1.2	08/09/23 SMI"

VER=${VER:-"foomatic-filters-ppds-20080818"}
PPDSRC=${PPDSRC:-"${VER}/share/ppd"}
DONOTINSTALL=${DONOTINSTALL:-"${SRC}/cmd/foomatic-ppd/ppdunsupported"}
CACHE=${CACHE:-"${SRC}/cmd/foomatic-ppd/SUNWfoomatic.cache"}
IPATH=${IPATH:-"/usr/share/ppd/SUNWfoomatic/"}

MODEL="ModelName"
NICK="NickName"
SED="/usr/bin/sed"

if [ -f ${CACHE} ];
then
	/bin/rm ${CACHE}
fi

#
# build a ppdcache for the foomatic PPD files
#
cd ${PPDSRC}
for i in `/bin/ls`
do
  cd $i
  for j in `/bin/ls`
  do
	case "$j" in
	*.gz)
		SRCFILE=/tmp/ppd.$$
		gzcat $j >${SRCFILE}
		PPDFILE="${IPATH}${i}/${j}"
		;;
	*)
		SRCFILE=$j
		PPDFILE="${IPATH}${i}/${j}.gz"
		;;
	esac
	
	/usr/bin/grep $SRCFILE ${DONOTINSTALL} > /dev/null
	if [ $? = 1 ];
	then
	  MANU=$i
	  MODEL=`/usr/bin/grep "*ModelName:" $SRCFILE | /usr/bin/cut -d '"' -f2`
	  NICKN=`/usr/bin/grep "*NickName:" $SRCFILE | /usr/bin/cut -d '"' -f2`
	  for k in ${MODEL}
	  do
	    # change / to \/ for sed
	    typeset i_clean=$(echo $k | ${SED} -e 's/\//\\\//g')
	    NICKN=$(echo $NICKN | ${SED} -e "s/$i_clean//"  | ${SED} -e "s/^ //")
	  done

	  echo ${MANU}:${MODEL}:${NICKN}:::${PPDFILE} >> ${CACHE}
	fi
  done
  cd ..

done