treewide: replace /bin/ksh93 hashbangs with /bin/sh
[unleashed-userland.git] / components / x11 / ogl-select / files / ogl-select
blobd74e565850eecea8ecd298984a4f6927cc2e93fc
1 #!/bin/sh
3 # Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
5 # Permission is hereby granted, free of charge, to any person obtaining a
6 # copy of this software and associated documentation files (the "Software"),
7 # to deal in the Software without restriction, including without limitation
8 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 # and/or sell copies of the Software, and to permit persons to whom the
10 # Software is furnished to do so, subject to the following conditions:
12 # The above copyright notice and this permission notice (including the next
13 # paragraph) shall be included in all copies or substantial portions of the
14 # Software.
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 # DEALINGS IN THE SOFTWARE.
26 . /lib/svc/share/smf_include.sh
28 USAGE="Usage: $0 <method>"
30 PATH=/usr/bin:/usr/sbin
32 DRIVER=""
33 OGL_SELECT_DIR=/lib/opengl/ogl_select
35 #######
37 # Default values
39 # Users must not modify this script to change them - change via SMF properties
43 # Default to MESA
44 VENDOR="MESA"
46 METHOD=$1
47 if [[ $# -lt 1 ]] ; then
48 print $USAGE
49 exit $SMF_EXIT_ERR_FATAL
51 shift
53 case $METHOD in
54 start)
55 # Continue with rest of script
57 stop)
58 # Nothing to do
59 exit $SMF_EXIT_OK
62 print "Invalid method $METHOD"
63 exit $SMF_EXIT_ERR_FATAL
65 esac
67 if [[ "$1" != "" ]] ; then
68 print $USAGE
69 exit $SMF_EXIT_ERR_FATAL
72 getprop() {
73 PROPVAL=""
74 # The "" instance is to get the properties from the base service
75 # without any instance specifier
76 svcprop -q -p $1 application/opengl/ogl-select
77 if [[ $? -eq 0 ]] ; then
78 PROPVAL=$(svcprop -p $1 application/opengl/ogl-select)
79 if [[ "$PROPVAL" == "\"\"" ]] ; then
80 PROPVAL=""
82 return
84 return
87 readregistry()
89 while read DRIVERTMP VENDORTMP; do
90 case "$DRIVERTMP" in
91 '#'* | '') # Ignore comments or empty lines
92 continue ;;
93 esac
94 if [[ "$DRIVERTMP" = "$DRIVER" && "$VENDORTMP" != '' ]]; then
95 VENDOR="$VENDORTMP"
97 done
100 # Get the driver attached to the console
101 DRIVER="$(/usr/bin/constype)"
103 REGISTRY=/tmp/ogl_select$$
104 if [[ -e ${REGISTRY} ]]; then
105 rm -f ${REGISTRY}
107 touch ${REGISTRY}
109 for x in ${OGL_SELECT_DIR}/*_vendor_select
111 if [[ -x "$x" ]]; then
112 ($x identify >> ${REGISTRY})
114 done
116 if [[ -f ${REGISTRY} ]]; then
117 readregistry < ${REGISTRY}
120 # Check for user override of vendor
121 getprop options/vendor
122 if [[ "$PROPVAL" != "" && "$PROPVAL" != "notset" ]] ; then
123 VENDOR="${PROPVAL}"
126 # Force the vendor name to lower case
127 VENDOR=$(print ${VENDOR} | /usr/bin/tr "[A-Z]" "[a-z]")
129 # Build vendor script name
130 SELECT_SCRIPT="${OGL_SELECT_DIR}/${VENDOR}_vendor_select"
131 if [[ ! -x "${SELECT_SCRIPT}" ]]; then
132 print $0 "Can't execute vendor select script:" $SELECT_SCRIPT
133 exit $SMF_EXIT_ERR_FATAL
136 ($SELECT_SCRIPT)
138 exit $SMF_ERR_OK