#!/bin/bash # vim:noexpandtab # Simple powersave script # # Copyright 2006 Red Hat, Inc. # # Based on work from: # Bill Nottingham # Peter Jones # David Zeuthen # Richard Hughes # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # set nullglob to make glob results empty in case the pattern does not # match any files shopt -s nullglob find_powerd_files() { flist="/etc/pm/power.d/*[^~] /usr/lib/pm-utils/power.d/*[^~]" bases=$(for file in $flist ; do echo $(basename $file) ; done | sort -n | uniq) for base in $bases ; do if [ -x "/etc/pm/power.d/$base" ]; then echo /etc/pm/power.d/$base elif [ -x "/usr/lib/pm-utils/power.d/$base" ]; then echo /usr/lib/pm-utils/power.d/$base fi done } runpowerhooks() { files=$(find_powerd_files) for file in $files ; do $file $1 done } if [ "$1" == "true" ] ; then runpowerhooks true elif [ "$1" == "false" ] ; then runpowerhooks false else echo "Argument needs to be true or false" >&2 exit 1 fi