#!/bin/bash

# This is the PBButtonsD version of the shell version of PMI

# calling convention: pmi <event>

command="$1"
event="$2"

#are we on battery or ac?
if [ `pbbcmd query TAG_POWERSOURCE` -eq 1 ]; then
        SOURCE=AC
else
        SOURCE=BATT
fi

if [ `pbbcmd query TAG_SLEEPSUPPORTED` -eq 0 ]; then
#sleep isn't supported at all, just error
        exit 1
fi

ACTION=`pbbcmd query TAG_ON$SOURCE\_COVERACTION`

usage () {
        echo "Usage: $0 query|action <event>" >&2
        echo "       $0 capabilities" >&2
        exit 254
}

query () {
        [ ! -z "$1" ] && event="$1"
        case "$event" in
                suspend|sleep)
                        if [ $ACTION -eq 1 ]; then
                                result=0
                        else
                                result=1
                        fi
                ;;
                hibernate)
                        if [ $ACTION -eq 2 ]; then
                                result=0
                        else
                                result=1
                        fi
                ;;
                *)
                        result=1
                        echo "No such event found" >&2
                ;;
        esac
}
                        
run () {
      `pbbcmd config TAG_GOTOSLEEP 1` 
}
                
capabilities () {
        for i in "hibernate" "suspend"; do 
                query $i 
                [ "$result" -eq 0 ] && caps="$caps $i"
        done
        echo $caps
}
        
case "$command" in
        query)
                query $event
                exit $result
                ;;
        action)
                run $event
                ;;
        capabilities)
                capabilities
                ;;
        *)
                usage
                ;;
esac

exit 0
