lede-packages-rs

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

bandwidthd-sqlite.init (3293B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2008-2017 OpenWrt.org
      3 
      4 START=99
      5 
      6 USE_PROCD=1
      7 
      8 CONFIGNAME="bandwidthd"
      9 CONFIGPHPNAME="bandwidthd-php"
     10 CONFIGFILE="/tmp/etc/bandwidthd.conf"
     11 CONFIGPHPFILE="/tmp/etc/bandwidthd-php.conf"
     12 
     13 config_cb() {
     14 	local cfg_type="$1"
     15 	local cfg_name="$2"
     16 
     17 	case "$cfg_type" in
     18 	        bandwidthd)
     19 	                append cfgs "$cfg_name"
     20 	        ;;
     21 	esac
     22 }
     23 
     24 export_bool() {
     25 	local option="$1"
     26 	local section="$2"
     27 	local _loctmp
     28 	config_get_bool _loctmp "$section" "$option"
     29 	if [ -n "$_loctmp" ]; then
     30 		conffile="${conffile}$option "
     31 		if [ 1 -eq "$_loctmp" ]; then
     32 			conffile="${conffile}true"
     33 		else
     34 			conffile="${conffile}false"
     35 		fi
     36 		conffile="${conffile}\n"
     37 	fi
     38 }
     39 
     40 export_number() {
     41 	local option="$1"
     42 	local section="$2"
     43 	local _loctmp
     44 	config_get _loctmp "$section" "$option"
     45 	if [ -n "$_loctmp" ]; then
     46 		conffile="${conffile}$option ${_loctmp}\n"
     47 	fi
     48 }
     49 
     50 export_string() {
     51 	local option="$1"
     52 	local section="$2"
     53 	local _loctmp
     54 	config_get _loctmp "$section" "$option"
     55 	if [ -n "$_loctmp" ]; then
     56 		conffile="${conffile}$option \"${_loctmp}\"\n"
     57 	fi
     58 }
     59 
     60 set_conf_file() {
     61 	local subnet conffile="# auto-generated config file from /etc/config/${CONFIGNAME}\n"
     62 
     63 	[ -d /tmp/bandwidthd ] || mkdir -p /tmp/bandwidthd && cp /www/legend.gif /www/logo.gif /tmp/bandwidthd/
     64 	[ -e /htdocs ] || ln -s /tmp/bandwidthd /htdocs
     65 	[ -e /www/bandwidthd ] || ln -s /tmp/bandwidthd /www/bandwidthd
     66 	rm -f $CONFIGFILE
     67 	touch $CONFIGFILE
     68 	[ -e /etc/bandwidthd.conf ] || ln -s $CONFIGFILE /etc/bandwidthd.conf
     69 
     70 	config_load $CONFIGNAME
     71 	for cfg in $cfgs; do
     72 		config_get subnets $cfg subnets
     73 			for subnet in $subnets; do
     74 				conffile="${conffile}subnet ${subnet}\n"
     75 			done
     76 		export_string dev $cfg
     77 		export_number skip_intervals $cfg
     78 		export_number graph_cutoff $cfg
     79 		export_bool promiscuous $cfg
     80 		export_bool output_cdf $cfg
     81 		export_bool recover_cdf $cfg
     82 		export_string filter $cfg
     83 		export_bool graph $cfg
     84 		export_number meta_refresh $cfg
     85 		export_string pgsql_connect_string $cfg
     86 		export_string sqlite_filename $cfg
     87 		export_string sensor_id $cfg
     88 		[ -n "$conffile" ] && echo -e "$conffile" >>$CONFIGFILE
     89 		unset conffile
     90 	done
     91 	cd /
     92 }
     93 
     94 set_php_conf_file() {
     95         local subnet conffile="<?php\n// auto-generated config file from /etc/config/${CONFIGPHPNAME}\n"
     96 
     97         rm -f $CONFIGPHPFILE
     98         touch $CONFIGPHPFILE
     99 
    100         config_load $CONFIGPHPNAME
    101         for cfg in $cfgs; do
    102 		export_number dflt_width $cfg
    103 		conffile="${conffile}define(\"DFLT_WIDTH\", ${paramstr:-"900"});\n"
    104 
    105 		export_number dflt_height $cfg
    106        		conffile="${conffile}define(\"DFLT_HEIGHT\", ${paramstr:-"256"});\n"
    107 
    108 		export_string dflt_interval $cfg
    109 		conffile="${conffile}define(\"DFLT_INTERVAL\", ${paramstr:-"INT_DAILY"});\n\n"'$db_connect_string = "sqlite:'
    110 
    111 		export_string sqlite_dbname $cfg
    112 		conffile="${conffile}${paramstr:-"/www/bandwidthd/stats.db"}"'"'"\n?>"
    113 		[ -n "$conffile" ] && echo -e "$conffile" >>$CONFIGPHPFILE
    114         done
    115         cd /
    116 }
    117 
    118 service_triggers() {
    119         procd_add_reload_trigger $CONFIGNAME
    120         procd_add_reload_trigger $CONFIGPHPNAME
    121 }
    122 
    123 start_service() {
    124 	set_conf_file
    125 	set_php_conf_file
    126 	procd_open_instance
    127 	procd_set_param command /usr/sbin/bandwidthd
    128 	procd_close_instance
    129 }
    130 
    131 stop_service() {
    132 	service_stop /usr/sbin/bandwidthd
    133 }