diff options
Diffstat (limited to 'usr/src/cmd/print/scripts/getppdfile')
-rw-r--r-- | usr/src/cmd/print/scripts/getppdfile | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/usr/src/cmd/print/scripts/getppdfile b/usr/src/cmd/print/scripts/getppdfile new file mode 100644 index 0000000000..bba0590b1b --- /dev/null +++ b/usr/src/cmd/print/scripts/getppdfile @@ -0,0 +1,88 @@ +#!/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 |