xref: /onnv-gate/usr/src/cmd/hal/tools/hal-functions.sh (revision 6573:7a725819f4fe)
1*6573Sphitran# -*-Shell-script-*-
2*6573Sphitran#
3*6573Sphitran# hal-functions.sh:	This file contains functions to be used by most or all
4*6573Sphitran#                       hal shell scripts
5*6573Sphitran# hal-system-lcd-get-brightness.sh
6*6573Sphitran#
7*6573Sphitran# Licensed under the Academic Free License version 2.1
8*6573Sphitran#
9*6573Sphitran
10*6573Sphitranhal_check_priv() {
11*6573Sphitran    if [ "$HAVE_POLKIT" = "1" -a -n $HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME ]; then
12*6573Sphitran        ACTION=$1
13*6573Sphitran        PK_RESULT=`hal-is-caller-privileged --udi $UDI --action $ACTION \
14*6573Sphitran            --caller $HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME`
15*6573Sphitran        RET=$?
16*6573Sphitran        if [ "$RET" != "0" ]; then
17*6573Sphitran            echo "org.freedesktop.Hal.Device.Error" >&2
18*6573Sphitran            echo "Cannot determine if caller is privileged" >&2
19*6573Sphitran            exit 1
20*6573Sphitran        fi
21*6573Sphitran        if [ "$PK_RESULT" != "yes" ] ;then
22*6573Sphitran            echo "org.freedesktop.Hal.Device.PermissionDeniedByPolicy" >&2
23*6573Sphitran            echo "$ACTION $PK_RESULT <-- (action, result)" >&2
24*6573Sphitran            exit 1
25*6573Sphitran        fi
26*6573Sphitran    fi
27*6573Sphitran}
28*6573Sphitran
29*6573Sphitranhal_call_backend() {
30*6573Sphitran    PROGRAM=`basename $0`
31*6573Sphitran    if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/$PROGRAM-$HALD_UNAME_S ]; then
32*6573Sphitran        ./$HALD_UNAME_S/$PROGRAM-$HALD_UNAME_S $@
33*6573Sphitran    else
34*6573Sphitran        echo "org.freedesktop.Hal.Device.UnknownError" >&2
35*6573Sphitran        echo "No back-end for your operating system" >&2
36*6573Sphitran        exit 1
37*6573Sphitran    fi
38*6573Sphitran}
39*6573Sphitran
40*6573Sphitranhal_exec_backend() {
41*6573Sphitran    PROGRAM=`basename $0`
42*6573Sphitran    if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/$PROGRAM-$HALD_UNAME_S ]; then
43*6573Sphitran        exec ./$HALD_UNAME_S/$PROGRAM-$HALD_UNAME_S $@
44*6573Sphitran    else
45*6573Sphitran        echo "org.freedesktop.Hal.Device.UnknownError" >&2
46*6573Sphitran        echo "No back-end for your operating system" >&2
47*6573Sphitran        exit 1
48*6573Sphitran    fi
49*6573Sphitran}
50