#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org

START=99
LIB_D=/var/lib/vnstat
WWW_D=/www/vnstat

system_config() {
	local cfg="$1"

	config_get hostname "$cfg" hostname
	hostname="${hostname:-OpenWrt}"
}

do_download() {
	include /lib/network
	scan_interfaces

	local cfg="$1"

	config_get ifname "$cfg" "ifname"
	[ -n "$ifname" ] || return 0
	[ -e $LIB_D/$ifname ] && return 0

	config_get_bool enabled "$cfg" "enabled" "1"
	if [ "$enabled" -gt 0 ]; then
		config_get remote_path "$cfg" "remote_path"
		[ -n "$remote_path" ] || return 0
		config_get remote_host "$cfg" "remote_host"
		[ -n "$remote_host" ] || return 0

		[ -x /usr/bin/wget ] && download_command="wget http://$remote_host/$remote_path/${hostname}_$ifname -O $LIB_D/$ifname"
		[ -n "$download_command" ] || return 0

		while [ ! -e $LIB_D/$ifname ]; do
			$download_command 2>/dev/null
			[ -e $LIB_D/$ifname ] && {
				logger -s -t "vnstat" "Successfully downloaded ${ifname}'s vnStat database backup"
				[ -x /bin/ln ] && ln -sf $LIB_D/$ifname $WWW_D/$ifname
				return 0
			}
			sleep 30
		done
	fi
}

start() {
	[ -d $LIB_D ] || mkdir -p $LIB_D
	[ -d $WWW_D ] || mkdir -p $WWW_D

	config_load system
	config_foreach system_config system

	config_load vnstat
	config_foreach do_download interface
}