home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / etc / acpi / power.sh < prev    next >
Encoding:
Linux/UNIX/POSIX Shell Script  |  2006-10-15  |  1.3 KB  |  60 lines

  1. #!/bin/bash
  2.  
  3. . /etc/default/acpi-support
  4. . /usr/share/acpi-support/power-funcs
  5.  
  6. function laptop_mode_enable {
  7.     $LAPTOP_MODE start
  8.     
  9.     for x in /sys/bus/ide/devices/*/block; do 
  10.     drive=$(basename $(readlink $x));
  11.     $HDPARM -S 12 /dev/$drive 2>/dev/null
  12.     $HDPARM -B 1 /dev/$drive 2>/dev/null
  13.     done
  14.     
  15.     for x in /sys/bus/scsi/devices/*/block; do 
  16.     drive=$(basename $(readlink $x));
  17.     $HDPARM -S 12 /dev/$drive 2>/dev/null
  18.     $HDPARM -B 1 /dev/$drive 2>/dev/null
  19.     done
  20. }
  21.  
  22. function laptop_mode_disable {
  23.     for x in /sys/bus/ide/devices/*/block; do 
  24.     drive=$(basename $(readlink $x));
  25.     $HDPARM -S 0 /dev/$drive 2>/dev/null
  26.     $HDPARM -B 255 /dev/$drive 2>/dev/null
  27.     done
  28.     for x in /sys/bus/scsi/devices/*/block; do 
  29.     drive=$(basename $(readlink $x));
  30.     $HDPARM -S 0 /dev/$drive 2>/dev/null
  31.     $HDPARM -B 255 /dev/$drive 2>/dev/null
  32.     done
  33.     $LAPTOP_MODE stop
  34. }
  35.  
  36. getState;
  37.  
  38. checkStateChanged;
  39.  
  40. shopt -s nullglob
  41.  
  42. for x in /proc/acpi/ac_adapter/*; do
  43.     grep -q off-line $x/state
  44.  
  45.     if [ $? = 0 ] && [ x$1 != xstop ]; then    
  46.     for SCRIPT in /etc/acpi/battery.d/*.sh; do
  47.         . $SCRIPT
  48.     done
  49.     if [ x$ENABLE_LAPTOP_MODE = xtrue ]; then
  50.         (sleep 5 && laptop_mode_enable)&
  51.     fi
  52.     else
  53.     for SCRIPT in /etc/acpi/ac.d/*.sh; do
  54.         . $SCRIPT
  55.     done
  56.     if [ x$ENABLE_LAPTOP_MODE = xtrue ]; then
  57.         (sleep 5 && laptop_mode_disable)&
  58.     fi
  59.     fi
  60. done