[packages_10.03.2] hd-idle: merge r30722
[10.03/packages.git] / utils / hd-idle / files / hd-idle.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008-2011 OpenWrt.org
3
4 START=50
5
6 append_bool() {
7         local section="$1"
8         local option="$2"
9         local value="$3"
10         local _val
11         config_get_bool _val "$section" "$option" '0'
12         [ "$_val" -gt 0 ] && append args "$3"
13 }
14
15 append_string() {
16         local section="$1"
17         local option="$2"
18         local value="$3"
19         local _val
20         config_get _val "$section" "$option"
21         [ -n "$_val" ] && append args "$3 $_val"
22 }
23
24 compute_seconds() {
25         local interval="$1"
26         local unit="$2"
27
28         if [ -z "$interval" ]
29         then
30                 interval=10
31         fi
32
33         if [ -z "$unit" ]
34         then
35                 unit="minutes"
36         fi
37
38         # compute interval in seconds
39         case "$unit" in
40                 "days" )
41                         interval_seconds=$(($interval*60*60*24))
42                         ;;
43                 "hours" )
44                         interval_seconds=$(($interval*60*60))
45                         ;;
46                 "minutes" )
47                         interval_seconds=$(($interval*60))
48                         ;;
49                 "seconds" )
50                         interval_seconds=$interval
51                         ;;
52                 * )
53                         # default is minutes
54                         interval_seconds=$(($interval*60))
55                         ;;
56         esac
57
58         echo $interval_seconds
59 }
60
61 start_service() {
62         local section="$1"
63         args=""
64         config_get "interval" "$section" "idle_time_interval"
65         config_get "unit" "$section" "idle_time_unit"
66         append_string "$section" "disk" "-a"
67         append_bool "$section" "enable_debug" "-d"
68         config_get_bool "enabled" "$section" "enabled" '1'
69         [ "$enabled" -gt 0 ] || return 1
70         service_start /usr/bin/hd-idle $args -i "$(compute_seconds $interval $unit)"
71 }
72
73 start() {
74         config_load "hd-idle"
75         config_foreach start_service "hd-idle"
76 }
77
78 stop() {
79         service_stop /usr/bin/hd-idle
80 }