#!/bin/sh /etc/rc.common START=88 PROG=/usr/bin/oled stop() { kill -2 $(pgrep /usr/bin/oled) kill -9 $(pgrep -f /usr/sbin/netspeed) echo "oled exit..." } start() { enabled=$(uci get oled.@oled[0].enable) if [ $enabled -eq 0 ]; then exit 0 fi autoswitch=$(uci get oled.@oled[0].autoswitch) from=$(uci get oled.@oled[0].from) to=$(uci get oled.@oled[0].to) if [ ${autoswitch} -eq 1 ]; then hour=$(date +"%H") min=$(date +"%M") ihour=`expr $hour + 0` imin=`expr $min + 0` now=$(($ihour*60+$imin)) if [[ $now -lt $from || $now -gt $to ]]; then stop exit 0 fi fi #crontab daemon if ! grep "/etc/init.d/oled \+restart" /etc/crontabs/root >/dev/null 2>&1; then echo "*/5 * * * * /etc/init.d/oled restart >/dev/null 2>&1" >> /etc/crontabs/root fi date=$(uci get oled.@oled[0].date) lanip=$(uci get oled.@oled[0].lanip) cputemp=$(uci get oled.@oled[0].cputemp) cpufreq=$(uci get oled.@oled[0].cpufreq) netspeed=$(uci get oled.@oled[0].netspeed) time=$(uci get oled.@oled[0].time) drawline=$(uci get oled.@oled[0].drawline) drawrect=$(uci get oled.@oled[0].drawrect) fillrect=$(uci get oled.@oled[0].fillrect) drawcircle=$(uci get oled.@oled[0].drawcircle) drawroundrect=$(uci get oled.@oled[0].drawroundrect) fillroundrect=$(uci get oled.@oled[0].fillroundrect) drawtriangle=$(uci get oled.@oled[0].drawtriangle) filltriangle=$(uci get oled.@oled[0].filltriangle) displaybitmap=$(uci get oled.@oled[0].displaybitmap) displayinvertnormal=$(uci get oled.@oled[0].displayinvertnormal) drawbitmapeg=$(uci get oled.@oled[0].drawbitmapeg) rotate=$(uci get oled.@oled[0].rotate) scroll=$(uci get oled.@oled[0].scroll) text=$(uci get oled.@oled[0].text) netsource=$(uci get oled.@oled[0].netsource) path=$(uci get oled.@oled[0].path) if [ ${netspeed} -eq 1 ]; then nohup /usr/sbin/netspeed ${netsource} >/dev/null 2>&1 & else kill -9 $(pgrep -f /usr/sbin/netspeed) rm -f /tmp/netspeed fi nohup ${PROG} ${date} ${lanip} ${cputemp} ${cpufreq} ${netspeed} ${time} ${drawline} ${drawrect} ${fillrect} ${drawcircle} ${drawroundrect} ${fillroundrect} ${drawtriangle} ${filltriangle} ${displaybitmap} ${displayinvertnormal} ${drawbitmapeg} ${scroll} "${text}" "${netsource}" "${path}" ${rotate} 1 > /dev/null 2>&1 & } restart() { enabled=$(uci get oled.@oled[0].enable) pgrep -f ${PROG} >/dev/null if [ $? -eq 0 ]; then if [ $enabled -eq 1 ]; then autoswitch=$(uci get oled.@oled[0].autoswitch) from=$(uci get oled.@oled[0].from) to=$(uci get oled.@oled[0].to) if [ ${autoswitch} -eq 1 ]; then hour=$(date +"%H") min=$(date +"%M") ihour=`expr $hour + 0` imin=`expr $min + 0` now=$(($ihour*60+$imin)) if [[ $now -lt $from || $now -gt $to ]]; then stop exit 0 fi fi date=$(uci get oled.@oled[0].date) lanip=$(uci get oled.@oled[0].lanip) cputemp=$(uci get oled.@oled[0].cputemp) cpufreq=$(uci get oled.@oled[0].cpufreq) netspeed=$(uci get oled.@oled[0].netspeed) time=$(uci get oled.@oled[0].time) drawline=$(uci get oled.@oled[0].drawline) drawrect=$(uci get oled.@oled[0].drawrect) fillrect=$(uci get oled.@oled[0].fillrect) drawcircle=$(uci get oled.@oled[0].drawcircle) drawroundrect=$(uci get oled.@oled[0].drawroundrect) fillroundrect=$(uci get oled.@oled[0].fillroundrect) drawtriangle=$(uci get oled.@oled[0].drawtriangle) filltriangle=$(uci get oled.@oled[0].filltriangle) displaybitmap=$(uci get oled.@oled[0].displaybitmap) displayinvertnormal=$(uci get oled.@oled[0].displayinvertnormal) drawbitmapeg=$(uci get oled.@oled[0].drawbitmapeg) rotate=$(uci get oled.@oled[0].rotate) scroll=$(uci get oled.@oled[0].scroll) text=$(uci get oled.@oled[0].text) netsource=$(uci get oled.@oled[0].netsource) path=$(uci get oled.@oled[0].path) kill -9 $(pgrep /usr/bin/oled) kill -9 $(pgrep -f /usr/sbin/netspeed) if [ ${netspeed} -eq 1 ]; then nohup /usr/sbin/netspeed ${netsource} >/dev/null 2>&1 & else kill -9 $(pgrep -f /usr/sbin/netspeed) rm -f /tmp/netspeed fi nohup ${PROG} ${date} ${lanip} ${cputemp} ${cpufreq} ${netspeed} ${time} ${drawline} ${drawrect} ${fillrect} ${drawcircle} ${drawroundrect} ${fillroundrect} ${drawtriangle} ${filltriangle} ${displaybitmap} ${displayinvertnormal} ${drawbitmapeg} ${scroll} "${text}" "${netsource}" "${path}" ${rotate} 0 > /dev/null 2>&1 & else stop fi else if [ $enabled -eq 1 ]; then start else exit 0 fi fi } boot() { start }