Adding smapi set battery scripts
[shutils.git] / smapi / smapi_battthresh
1 #!/bin/sh
2 # Copyright (c) 2014 Stefan Huber
3 #
4 # Permission is hereby granted, free of charge, to any person
5 # obtaining a copy of this software and associated documentation
6 # files (the "Software"), to deal in the Software without
7 # restriction, including without limitation the rights to use,
8 # copy, modify, merge, publish, distribute, sublicense, and/or sell
9 # copies of the Software, and to permit persons to whom the
10 # Software is furnished to do so, subject to the following
11 # conditions:
12 #
13 # The above copyright notice and this permission notice shall be
14 # included in all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18 # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 # OTHER DEALINGS IN THE SOFTWARE.
24
25 # Author: Stefan Huber <shuber@sthu.org>
26
27
28
29 CONFIG_FILE="/etc/smapi.conf"
30 SMAPI_SYSFS="/sys/devices/platform/smapi"
31 BATS="BAT0 BAT1"
32
33 load_config() {
34 if [ -e ${CONFIG_FILE} ]; then
35 source ${CONFIG_FILE}
36 else
37 echo "No config file /etc/smapi.conf found."
38 exit 1
39 fi
40 }
41
42 set_all() {
43 local tstart=$1
44 local tstop=$2
45 local bat
46
47 for bat in ${BATS}; do
48 echo " setting thresholds for ${bat}: $tstart $tstop"
49 echo ${tstart} > ${SMAPI_SYSFS}/${bat}/start_charge_thresh
50 echo ${tstop} > ${SMAPI_SYSFS}/${bat}/stop_charge_thresh
51 done
52 }
53
54 set_default() {
55 echo "Switching to default thesholds"
56 load_config
57 set_all ${BATTERY_THRESH_START} ${BATTERY_THRESH_STOP}
58 }
59
60 set_high() {
61 echo "Switching to high thesholds"
62 load_config
63 set_all ${BATTERY_HIGH_THRESH_START} ${BATTERY_HIGH_THRESH_STOP}
64 }
65
66 set_low() {
67 echo "Switching to low thesholds"
68 load_config
69 set_all ${BATTERY_LOW_THRESH_START} ${BATTERY_LOW_THRESH_STOP}
70 }
71
72 info() {
73 local presence
74 local tstart
75 local tstop
76 local bat
77
78 for bat in ${BATS}; do
79 tstart=$(cat ${SMAPI_SYSFS}/${bat}/start_charge_thresh)
80 tstop=$(cat ${SMAPI_SYSFS}/${bat}/stop_charge_thresh)
81 if [ "$(cat ${SMAPI_SYSFS}/${bat}/installed)" -eq "1" ]; then
82 presence=" [installed]"
83 fi
84 echo "${bat}: ${tstart}..${tstop}${presence}"
85 done
86 }
87
88 if [ "$#" = "0" ]; then
89 info
90 else
91 case "$1" in
92 high)
93 set_high
94 ;;
95 low)
96 set_low
97 ;;
98 default)
99 set_default
100 ;;
101 *)
102 info
103 ;;
104 esac
105 fi