From 3af2a9a41bd818eb92b539a658c274eddd555e0e Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 15 Jan 2011 02:00:37 +0000 Subject: [PATCH 1/1] [packages] vnstat: readd download and symlink functionality SVN-Revision: 25001 --- net/vnstat/Makefile | 2 +- net/vnstat/files/vnstat-uci.conf | 2 ++ net/vnstat/files/vnstat.init | 33 +++++++++++++++++++++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/net/vnstat/Makefile b/net/vnstat/Makefile index 29995fc6a7..86d6fc5900 100644 --- a/net/vnstat/Makefile +++ b/net/vnstat/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=vnstat PKG_VERSION:=1.10 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://humdi.net/vnstat diff --git a/net/vnstat/files/vnstat-uci.conf b/net/vnstat/files/vnstat-uci.conf index 339fda48ae..9da71ed7f9 100644 --- a/net/vnstat/files/vnstat-uci.conf +++ b/net/vnstat/files/vnstat-uci.conf @@ -1,3 +1,5 @@ config vnstat list interface br-lan # list interface eth0.1 +# option remote http://example.org/vnstat/ +# option symlink /www/vnstat diff --git a/net/vnstat/files/vnstat.init b/net/vnstat/files/vnstat.init index 2febdfae3a..fab1f341ab 100644 --- a/net/vnstat/files/vnstat.init +++ b/net/vnstat/files/vnstat.init @@ -26,8 +26,39 @@ start() { init_ifaces() { local cfg="$1" - init_iface() { /usr/bin/vnstat -u -i "$1" >/dev/null; } + local url lnk + + init_iface() { + local ifn="$1" + + [ -n "$url" ] && { + local try=0 + local max=3 + local hostname="$(cat /proc/sys/kernel/hostname)" + + while [ $((++try)) -le $max ]; do + if wget -q -O "$lib/$ifn" "$url/${hostname}_$ifn" 2>/dev/null && [ -e "$lib/$ifn" ]; then + logger -t "vnstat" "Downloaded backup for database $ifn" + break + else + logger -t "vnstat" "Download try $try/$max for database $ifn failed" + sleep 30 + fi + done + } + + /usr/bin/vnstat -u -i "$ifn" >/dev/null + + [ -n "$lnk" ] && { + mkdir -p "$lnk" + [ -L "$lnk/$ifn" ] || ln -s "$lib/$ifn" "$lnk/$ifn" + } + } + + config_get url "$cfg" remote + config_get lnk "$cfg" symlink config_list_foreach "$cfg" interface init_iface + return 1 } -- 2.30.2