1#!/bin/sh /etc/rc.common 2# Copyright (C) 2008-2011 OpenWrt.org 3 4START=50 5 6append_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 15append_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 24compute_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 61start_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 73start() { 74 config_load "hd-idle" 75 config_foreach start_service "hd-idle" 76} 77 78stop() { 79 service_stop /usr/bin/hd-idle 80} 81