lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

hd-idle.init (1353B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2008-2011 OpenWrt.org
      3 
      4 START=50
      5 STOP=10
      6 
      7 USE_PROCD=1
      8 
      9 validate_section_hdidle()
     10 {
     11 	uci_validate_section hd-idle hd-idle "${1}" \
     12 		'disk:string' \
     13 		'enabled:bool' \
     14 		'idle_time_interval:uinteger:10' \
     15 		'idle_time_unit:string:minutes'
     16 }
     17 
     18 compute_seconds() {
     19 	local interval="$1"
     20 	local unit="$2"
     21 
     22 	# compute interval in seconds
     23 	case "$unit" in
     24 		"days" )
     25 			interval_seconds=$(($interval*60*60*24))
     26 			;;
     27 		"hours" )
     28 			interval_seconds=$(($interval*60*60))
     29 			;;
     30 		"minutes" )
     31 			interval_seconds=$(($interval*60))
     32 			;;
     33 		"seconds" )
     34 			interval_seconds=$interval
     35 			;;
     36 		* )
     37 			# default is minutes
     38 			interval_seconds=$(($interval*60))
     39 			;;
     40 	esac
     41 
     42 	echo $interval_seconds
     43 }
     44 
     45 hdidle_append() {
     46 	local disk enabled idle_time_interval idle_time_unit
     47 
     48 	validate_section_hdidle "${1}" || return
     49 
     50 	[ "$enabled" -gt 0 ] || return
     51 
     52 	if [ "$numdisks" = "0" ]; then
     53 		procd_open_instance
     54 		procd_set_param command /usr/bin/hd-idle
     55 		procd_append_param command -d -i 0
     56 	fi
     57 	procd_append_param command -a $disk
     58 	procd_append_param command -i "$(compute_seconds $idle_time_interval $idle_time_unit)"
     59 	numdisks=$(( numdisks + 1 ))
     60 }
     61 
     62 start_service() {
     63 	config_load "hd-idle"
     64 
     65 	numdisks="0"
     66 	config_foreach hdidle_append "hd-idle"
     67 
     68 	if [ "$numdisks" -gt 0 ]; then
     69 		procd_set_param respawn
     70 		procd_close_instance
     71 	fi
     72 }