git.lirion.de

Of git, get, and gud

aboutsummaryrefslogtreecommitdiffstats
path: root/localfs/usr/local
diff options
context:
space:
mode:
Diffstat (limited to 'localfs/usr/local')
-rwxr-xr-xlocalfs/usr/local/bin/batman30
1 files changed, 22 insertions, 8 deletions
diff --git a/localfs/usr/local/bin/batman b/localfs/usr/local/bin/batman
index bfa00c0..5b873d7 100755
--- a/localfs/usr/local/bin/batman
+++ b/localfs/usr/local/bin/batman
@@ -1,9 +1,11 @@
#!/bin/sh
declare -x VOERBOOS
-export RETVAL=0
-export BATVAL="$(echo "scale=0;$(cat /sys/class/power_supply/BAT0/charge_now)*100/$(cat /sys/class/power_supply/BAT0/charge_full)"|bc -l)"
-export BATSTATE="$(cat /sys/class/power_supply/BAT0/status)"
+RETVAL=0;export RETVAL
+BATVAL="$(echo "scale=0;$(cat /sys/class/power_supply/BAT0/charge_now)*100/$(cat /sys/class/power_supply/BAT0/charge_full)"|bc -l)";export BATVAL
+BATSTATE="`cat /sys/class/power_supply/BAT0/status`";export BATSTATE
+BATFILE="/tmp/batman.sd";export BATFILE
+export OPTCNT=0
function batmobile {
if [ "$BATVAL" -le 5 ];then
case "$BATSTATE" in
@@ -11,12 +13,23 @@ function batmobile {
MSG="Battery charged at $BATVAL% with status \"$BATSTATE\", no shutdown."
[ ! -z "$VOERBOOS" ]&&[ "$VOERBOOS" -eq 1 ]&&echo "$MSG"||true
logger -p"info" -t"batman" "Battery charged at $BATVAL% with status \"$BATSTATE\", no shutdown."||RETVAL=$(("$RETVAL"+$?))
+ [ -e "$BATFILE" ]&&/usr/sbin/shutdown -c >/dev/null 2>&1&&rm "$BATFILE"
+ SDCRV="$?"
+ case "$SDCRV" in
+ 0) logger -p"info" -t"batman" "Shutdown cancelled.";;
+ *)
+ logger -p"warn" -t"batman" "$BATFILE exists but couldn't cancel shutdown!"
+ RETVAL=$(("$RETVAL"+"$SDCRV"))
+ ;;
+ esac
;;
*)
MSG="Battery charged at $BATVAL%, powering down."
[ ! -z "$VOERBOOS" ]&&[ "$VOERBOOS" -eq 1 ]&&echo "$MSG"||true
logger -pwarn -t"batman" "$MSG"||RETVAL=$(("$RETVAL"+$?))
- sudo shutdown -P +2 "$MSG"||RETVAL=$(("$RETVAL"+$?))
+ if [ ! -e "$BATFILE" ];then
+ /usr/sbin/shutdown -P +2 "Battery low and discharging, powering down. (batman)"&&touch "$BATFILE"||RETVAL=$(("$RETVAL"+$?))
+ fi
;;
esac
else
@@ -30,12 +43,13 @@ function batarang {
while getopts :vnp SHOPT;do
case "$SHOPT" in
- v)export VOERBOOS=1;;
- p)batmobile;;
- ""|n)batarang;;
- *)echo "Not supported option: -""${OPTARG}" >&2;RETVAL=$(($RETVAL+1)) >&2;WRONGOPT=1;;
+ v)VOERBOOS=1;export VOERBOOS;((OPTCNT++));;
+ p)batmobile;((OPTCNT++));;
+ ""|n)batarang;((OPTCNT++));;
+ *)echo "Not supported option: -""${OPTARG}" >&2;RETVAL=$(($RETVAL+1)) >&2;WRONGOPT=1;((OPTCNT++));;
esac
done
shift $(( $OPTIND - 1 ))
+[ "$OPTCNT" -le 0 ]&&batarang
[ ! -z "$WRONGOPT" ]&&[ "$WRONGOPT" -eq 1 ]&&exit 1||true
exit "$RETVAL"