According to Harry Barnes,
> Hi,
> 
> I was recently convinced to try gentoo on my laptop - which i did and i am 
> currently trying to tweak it back to its debian days. My current install 
> does not have the useful on_ac_power script and i can't find it on the 
> gentoo portage tree.
> 
> Can someone please, e-mail me the script - I rather not hack together my 
> own version of it.
> 
> TIA
> 
> -Harry

sanity$ dpkg --search on_ac_power
powermgmt-base: /usr/share/man/man1/on_ac_power.1.gz
powermgmt-base: /usr/bin/on_ac_power
sanity$ cat $(which on_ac_power)
#!/bin/sh
#
# Returns 0 (true) if on AC power
#         1 (false) if not on AC power
#         255 (false) if can't tell
#
# Example shell script:
#     if on_ac_power; then
#       echo We're on AC power
#     else
#       echo Can't say we're on AC power
#     fi

set -e

# ACPI
#
# This algorithm is complicated by the possibility of
# multiple AC
# adapters.  We scan the ac_adapter directory looking for
# adapters
# that have known states.  If any adapter is on-line, we
# return 0.  If
# no adapters are on-line but one or more are off-line, we
# return 1.
#
if acpi_available && [ -d /proc/acpi/ac_adapter ]; then
    OFF_LINE_P=no
    for FN in /proc/acpi/ac_adapter/*; do
        if [ -d "${FN}" ]; then
            if [ -r "${FN}/state" ]; then
                grep --quiet on-line "${FN}/state" && exit 0
                grep --quiet off-line "${FN}/state" &&
OFF_LINE_P=yes
            elif [ -r "${FN}/status" ]; then
                grep --quiet on-line "${FN}/status" && exit
0
                grep --quiet off-line "${FN}/status" &&
OFF_LINE_P=yes
            fi
        fi
    done
    [ "${OFF_LINE_P}" = "yes" ] && exit 1
fi

# APM
if apm_available && [ -r /proc/apm ]; then
    exec awk </proc/apm '
        BEGIN { ret = 255 }
        /^[0-9.a-zA-Z]* [0-9.]* 0x.. 0x../ {
                if ($4 == "0x01") { ret = 0; exit }
                else if ($4 == "0x00") { ret = 1; exit }
        }
        END { exit ret }
    '
fi

# PMU
if [ -r /proc/pmu/info ]; then
    exec awk </proc/pmu/info '
        BEGIN { ret = 255 }
        /^AC Power.*1$/ { ret = 0; exit }
        /^AC Power.*0$/ { ret = 1; exit }
        END { exit ret }
    '
fi

# nothing is available
exit 255
:!

Reply via email to