1 #!/bin/sh 2 # 3 # Copyright (C) 2014 The Android Open Source Project 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 # 17 # 18 # Set the Wake on LAN behavior. 19 20 FLAGS_HELP="Usage: 21 22 $(basename $0) 23 24 or 25 26 $(basename $0) [true | false] " 27 28 FLIMFLAM=org.chromium.flimflam 29 IMANAGER="${FLIMFLAM}.Manager" 30 PROPERTY_NAME=WakeOnLanEnabled 31 PROPERTY_DESC="Wake on LAN" 32 33 usage() { 34 echo "Invalid invocation: $*" 35 echo 36 echo $FLAGS_HELP 37 exit 1 38 } 39 40 dbus () { 41 local obj="$1" 42 local meth="$2" 43 shift 2 44 45 dbus-send --system --print-reply --fixed --dest="${FLIMFLAM}" "${obj}" "${meth}" "$@" 46 } 47 48 get_manager_property () { 49 dbus / "${IMANAGER}.GetProperties" | sed -n "/$1/s/.* //p" 50 } 51 52 display_value () { 53 local value=$(get_manager_property "${PROPERTY_NAME}") 54 55 if [ -n "${value}" ] ; then 56 echo "Current ${PROPERTY_DESC} setting: " $value 57 exit 0 58 fi 59 60 echo "This connection manager instance does not support ${PROPERTY_DESC}" 61 exit 0 62 } 63 64 if [ $# -lt 1 ]; then 65 display_value 66 fi 67 68 set_value="$1" 69 70 if [ "${set_value}" != "false" -a "${set_value}" != "true" ] ; then 71 usage "Argument must be 'true' or 'false'" 72 fi 73 74 dbus / "${IMANAGER}.SetProperty" string:"${PROPERTY_NAME}" "variant:boolean:${set_value}" 75