From: John Crispin Date: Mon, 28 Jul 2008 19:34:31 +0000 (+0000) Subject: bumps vnstat to 1.6 and add uci files X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=b9358dc52de6b8abd99f7b57e18cc68ab4a8b0f9 bumps vnstat to 1.6 and add uci files SVN-Revision: 11976 --- diff --git a/net/vnstat/Makefile b/net/vnstat/Makefile index 89b38075f5..2b940b4121 100644 --- a/net/vnstat/Makefile +++ b/net/vnstat/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=vnstat -PKG_VERSION:=1.4 +PKG_VERSION:=1.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://humdi.net/vnstat -PKG_MD5SUM:=9184f79b5e60499bc059f670032291e5 +PKG_MD5SUM:=ccaffe8e70d47e0cf2f25e52daa25712 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) @@ -34,6 +34,10 @@ define Package/vnstat/description so vnStat can be used without root permissions. endef +define Package/vnstat/conffiles +/etc/config/vnstat +endef + define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ $(TARGET_CONFIGURE_OPTS) \ @@ -43,6 +47,26 @@ endef define Package/vnstat/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/vnstat $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/vnstat.conf $(1)/etc/config/vnstat + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/vnstat.init $(1)/etc/init.d/vnstat +endef + +define Package/vnstat/postinst +#!/bin/sh +BIN=$${IPKG_INSTROOT}/usr/bin/vnstat +CRONTAB=$${IPKG_INSTROOT}/etc/crontabs/root +LIB_D=$${IPKG_INSTROOT}/var/lib/vnstat +mkdir -p $${IPKG_INSTROOT}/etc/crontabs/ +[ -d $$LIB_D ] || mkdir -p $$LIB_D +IFACE_WAN=$$(uci get network.wan.ifname) +if [ -n $$IFACE_WAN ]; then + [ -e $$LIB_D/$$IFACE_WAN ] || ( [ -x $$BIN ] && $$BIN -u -i $$IFACE_WAN ) +fi +grep -q "$$BIN -u" $$CRONTAB 2>/dev/null +[ $$? -ne 0 ] && echo "0-55/5 * * * * root if [ -x $$BIN ] && [ \`ls $$LIB_D | wc -l\` -ge 1 ]; then $$BIN -u; fi" >> $$CRONTAB +true endef $(eval $(call BuildPackage,vnstat)) diff --git a/net/vnstat/files/vnstat.conf b/net/vnstat/files/vnstat.conf new file mode 100644 index 0000000000..44c02c2d00 --- /dev/null +++ b/net/vnstat/files/vnstat.conf @@ -0,0 +1,4 @@ +config interface wan + option enabled 0 + option remote_host + option remote_path diff --git a/net/vnstat/files/vnstat.init b/net/vnstat/files/vnstat.init new file mode 100644 index 0000000000..07db20cba8 --- /dev/null +++ b/net/vnstat/files/vnstat.init @@ -0,0 +1,56 @@ +#!/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 +}