diff options
| author | Roy Marples <roy@marples.name> | 2009-12-10 22:30:56 +0000 | 
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2009-12-10 22:30:56 +0000 | 
| commit | 1d174cc60ca640146efd73948ff0e81ae0148f3d (patch) | |
| tree | 32fece5fcbb8005ee73251f9374b2abc7fc80f7b /scripts | |
| parent | 12af86395ff3726789f72e96aa1367e2e428b972 (diff) | |
| download | openrc-1d174cc60ca640146efd73948ff0e81ae0148f3d.tar.xz | |
Move on_ac_power to a shell script.
Fixes #204
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile | 5 | ||||
| -rwxr-xr-x | scripts/on_ac_power | 33 | 
2 files changed, 38 insertions, 0 deletions
| diff --git a/scripts/Makefile b/scripts/Makefile new file mode 100644 index 00000000..3d41631e --- /dev/null +++ b/scripts/Makefile @@ -0,0 +1,5 @@ +DIR=	${LIBEXECDIR}/bin +BIN=	on_ac_power + +MK=	../mk +include ${MK}/scripts.mk diff --git a/scripts/on_ac_power b/scripts/on_ac_power new file mode 100755 index 00000000..08049525 --- /dev/null +++ b/scripts/on_ac_power @@ -0,0 +1,33 @@ +#!/bin/sh +# Detect AC power or not in a portable way +# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> + +# Exit 0 if on AC power, 1 if not and 255 if we don't know how to work it out +if [ -f /proc/acpi/ac_adapter/AC*/state ]; then +	cat /proc/acpi/ac_adapter/AC*/state | while read line; do +		case "$line" in +		"state:"*"off-line") return 128;; +		esac +	done +elif [ -f /proc/pmu/info ]; then +	cat /proc/pmu/info | while read line; do +		case "$line" in +		"AC Power"*": 0") return 128;; +		esac +	done +elif type envstat >/dev/null 2>&1; then +	# NetBSD has envstat +	envstat -d acpiacad0 2>/dev/null | while read line; do +		case "$line" in +		"connected:"*"OFF") return 128;; +		esac +	done +elif sysctl -q hw.acpi.acline >/dev/null 2>/dev/null; then +	case $(sysctl -n hw.acpi.acline) in +	0) return 1;; +	*) return 0;; +	esac +else +	exit 255 +fi +[ $? != 128 ] | 
