1453df54542b1f597b30d4f7ded66c6b161b0bc5cPaul Stewart#!/bin/sh 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# Copyright (C) 2014 The Android Open Source Project 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# Licensed under the Apache License, Version 2.0 (the "License"); 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# you may not use this file except in compliance with the License. 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# You may obtain a copy of the License at 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# http://www.apache.org/licenses/LICENSE-2.0 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# Unless required by applicable law or agreed to in writing, software 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# distributed under the License is distributed on an "AS IS" BASIS, 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# See the License for the specific language governing permissions and 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# limitations under the License. 16c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 178e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart# 188e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart# Set the Wake on LAN behavior. 198e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 208e9e41cedee1a6be89ebc027afab62c9a52cb574Paul StewartFLAGS_HELP="Usage: 218e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 228e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart $(basename $0) 238e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 248e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartor 258e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 268e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart $(basename $0) [true | false] " 278e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 288e9e41cedee1a6be89ebc027afab62c9a52cb574Paul StewartFLIMFLAM=org.chromium.flimflam 298e9e41cedee1a6be89ebc027afab62c9a52cb574Paul StewartIMANAGER="${FLIMFLAM}.Manager" 308e9e41cedee1a6be89ebc027afab62c9a52cb574Paul StewartPROPERTY_NAME=WakeOnLanEnabled 318e9e41cedee1a6be89ebc027afab62c9a52cb574Paul StewartPROPERTY_DESC="Wake on LAN" 328e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 338e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartusage() { 348e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart echo "Invalid invocation: $*" 358e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart echo 368e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart echo $FLAGS_HELP 378e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart exit 1 388e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart} 398e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 408e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartdbus () { 418e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart local obj="$1" 428e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart local meth="$2" 438e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart shift 2 448e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 458e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart dbus-send --system --print-reply --fixed --dest="${FLIMFLAM}" "${obj}" "${meth}" "$@" 468e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart} 478e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 488e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartget_manager_property () { 498e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart dbus / "${IMANAGER}.GetProperties" | sed -n "/$1/s/.* //p" 508e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart} 518e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 528e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartdisplay_value () { 538e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart local value=$(get_manager_property "${PROPERTY_NAME}") 548e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 558e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart if [ -n "${value}" ] ; then 568e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart echo "Current ${PROPERTY_DESC} setting: " $value 578e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart exit 0 588e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart fi 598e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 608e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart echo "This connection manager instance does not support ${PROPERTY_DESC}" 618e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart exit 0 628e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart} 638e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 64453df54542b1f597b30d4f7ded66c6b161b0bc5cPaul Stewartif [ $# -lt 1 ]; then 658e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart display_value 668e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartfi 678e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 688e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartset_value="$1" 698e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 708e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartif [ "${set_value}" != "false" -a "${set_value}" != "true" ] ; then 718e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart usage "Argument must be 'true' or 'false'" 728e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartfi 738e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewart 748e9e41cedee1a6be89ebc027afab62c9a52cb574Paul Stewartdbus / "${IMANAGER}.SetProperty" string:"${PROPERTY_NAME}" "variant:boolean:${set_value}" 75