#!/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 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "%Z%%M% %I% %E% SMI" # # # Get the path/ppdfilename for this ppd NickName # Input: # make: model: ppdlabel: ppd: # PrintersRus: ABC Model 1234: SUNWfoomatic(S): Foomatic/Postscript (recommended): # # # Returns the full path to the repository associated with # the repository letter found between parenthesis in the # extended PPD label. # # $1 - Extended PPD label # rep_path() { case "$(expr \"$1\" : ".*(\(.*\)).*")" in "S") echo "/usr/share/ppd" ;; "V") echo "/opt/share/ppd" ;; "A") echo "/usr/local/share/ppd" ;; "U") echo "/var/lp/ppd" ;; esac } if [[ $# -lt 4 ]]; then exit 1 fi [[ -f /var/lp/ppd/ppdcache ]] || exit 1 make=$(echo $* | /usr/bin/nawk '{FS=":"; print $1}') # strip leading blanks model=$(echo $* | /usr/bin/nawk '{FS=":"; print $2}' | /bin/sed -e 's/^[ ]*//') extppdlabel=$(echo $* | /usr/bin/nawk '{FS=":"; print $3}' | /bin/sed -e 's/^[ ]*//') ppd=$(echo $* | /usr/bin/nawk '{FS=":"; print $4}' | /bin/sed -e 's/^[ ]*//') # # Do not use ":" with $make. printmgr collapses manufacturer name # to first word, ie PrintersRus and PrintersRus International become # PrintersRus. The full path to the PPD file will be the 6th # colon separated entry in the ppdcache entry. If the format # of a ppdcache entry changes, then this will need to be modified # also. # /bin/grep "${make}" /var/lp/ppd/ppdcache | /bin/grep "${model}:" | /bin/grep "${ppd}:" | /bin/grep "$(rep_path ${extppdlabel})/${extppdlabel%\(*}" | /usr/bin/nawk '{FS=":"; print $6}' exit 0