xref: /titanic_41/usr/src/cmd/print/scripts/getppdfile (revision cd3e933325e68e23516a196a8fea7f49b1e497c3)
1#!/usr/bin/ksh
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# ident	"%Z%%M%	%I%	%E% SMI"
26#
27
28#
29# Get the path/ppdfilename for this ppd NickName
30# Input:
31#	make: model: ppdlabel: ppd:
32#	PrintersRus: ABC Model 1234: SUNWfoomatic(S): Foomatic/Postscript (recommended):
33#
34
35#
36# Returns the full path to the repository associated with
37# the repository letter found between parenthesis in the
38# extended PPD label.
39#
40# $1	- Extended PPD label
41#
42rep_path()
43{
44	case "$(expr \"$1\" : ".*(\(.*\)).*")" in
45	"S")
46		echo "/usr/share/ppd"
47		;;
48	"V")
49		echo "/opt/share/ppd"
50		;;
51	"A")
52		echo "/usr/local/share/ppd"
53		;;
54	"U")
55		echo "/var/lp/ppd"
56		;;
57	esac
58}
59
60if [[ $# -lt 4 ]]; then
61        exit 1
62fi
63
64[[ -f /var/lp/ppd/ppdcache ]] || exit 1
65make=$(echo $* | /usr/bin/nawk '{FS=":"; print $1}')
66# strip leading blanks
67model=$(echo $* | /usr/bin/nawk '{FS=":"; print $2}' |
68    /bin/sed -e 's/^[ ]*//')
69extppdlabel=$(echo $* | /usr/bin/nawk '{FS=":"; print $3}' |
70    /bin/sed -e 's/^[ ]*//')
71ppd=$(echo $* | /usr/bin/nawk '{FS=":"; print $4}' |
72    /bin/sed -e 's/^[ ]*//')
73
74#
75# Do not use ":" with $make. printmgr collapses manufacturer name
76# to first word, ie PrintersRus and PrintersRus International become
77# PrintersRus.  The full path to the PPD file will be the 6th
78# colon separated entry in the ppdcache entry.  If the format
79# of a ppdcache entry changes, then this will need to be modified
80# also.
81#
82/bin/grep "${make}" /var/lp/ppd/ppdcache |
83    /bin/grep "${model}:" |
84    /bin/grep "${ppd}:"  |
85    /bin/grep "$(rep_path ${extppdlabel})/${extppdlabel%\(*}" |
86    /usr/bin/nawk '{FS=":"; print $6}'
87
88exit 0
89