Changeset 25000


Ignore:
Timestamp:
2011-01-14T20:53:27+01:00 (7 years ago)
Author:
jow
Message:

[packages] vnstat: rework package, get rid of download stuff (this is better done externally), initialize db in init script, store monitored interfaces in /etc/config/vnstat

Location:
packages/net/vnstat
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • packages/net/vnstat/Makefile

    r22967 r25000  
    1010PKG_NAME:=vnstat 
    1111PKG_VERSION:=1.10 
    12 PKG_RELEASE:=1 
     12PKG_RELEASE:=2 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
     
    9999define Package/vnstat/postinst 
    100100#!/bin/sh 
    101 BIN_REL=/usr/bin/vnstat 
    102 BIN=$${IPKG_INSTROOT}$${BIN_REL} 
    103 LIB_D_REL=/var/lib/vnstat 
    104 LIB_D=$${IPKG_INSTROOT}$${LIB_D_REL} 
    105 [ -d $$LIB_D ] || mkdir -p $$LIB_D 
    106 IFACE_WAN=$$(uci get network.wan.ifname) 
    107 if [ -n $$IFACE_WAN ]; then 
    108         [ -e $$LIB_D/$$IFACE_WAN ] || ( [ -x $$BIN ] && $$BIN -u -i $$IFACE_WAN ) 
     101local wan="$$(uci -P/var/state get network.wan.ifname)" 
     102if [ -n "$$wan" ]; then 
     103        uci -q batch <<-EOF >/dev/null 
     104                add_list vnstat.@vnstat[-1].interface=$$wan 
     105                commit vnstat 
     106        EOF 
    109107fi 
    110 true 
     108exit 0 
    111109endef 
    112110 
  • packages/net/vnstat/files/vnstat-uci.conf

    r16327 r25000  
    1 config interface                wan 
    2         option enabled          0 
    3         option remote_host      <webserver> 
    4         option remote_path      <directory> 
     1config vnstat 
     2        list interface          br-lan 
     3#       list interface          eth0.1 
  • packages/net/vnstat/files/vnstat.init

    r16327 r25000  
    11#!/bin/sh /etc/rc.common 
    2 # Copyright (C) 2008 OpenWrt.org 
     2# Copyright (C) 2008-2011 OpenWrt.org 
    33 
    44START=99 
    5 LIB_D=/var/lib/vnstat 
    6 WWW_D=/www/vnstat 
    7 RUN_D=/var/run 
    8 PID_F=$RUN_D/vnstat.pid 
    9 VNSTATD_BIN=/usr/sbin/vnstatd 
    105 
    11 system_config() { 
    12         local cfg="$1" 
    13  
    14         config_get hostname "$cfg" hostname 
    15         hostname="${hostname:-OpenWrt}" 
    16 } 
    17  
    18 do_download() { 
    19         include /lib/network 
    20         scan_interfaces 
    21  
    22         local cfg="$1" 
    23  
    24         config_get ifname "$cfg" ifname 
    25         [ -n "$ifname" ] || return 0 
    26         [ -e $LIB_D/$ifname ] && return 0 
    27  
    28         config_get_bool enabled "$cfg" enabled '1' 
    29         [ "$enabled" -gt 0 ] && { 
    30                 config_get remote_host "$cfg" remote_host 
    31                 [ -n "$remote_host" ] || return 0 
    32                 config_get remote_path "$cfg" remote_path 
    33                 [ -n "$remote_path" ] || return 0 
    34  
    35                 while [ ! -e $LIB_D/$ifname ]; do 
    36                         wget http://$remote_host/$remote_path/${hostname}_$ifname -O $LIB_D/$ifname 2>/dev/null 
    37                         [ -e $LIB_D/$ifname ] && { 
    38                                 logger -t "vnstat" "Successfully downloaded ${ifname}'s vnStat database backup" 
    39                                 [ -L $WWW_D/$ifname ] || ln -s $LIB_D/$ifname $WWW_D/$ifname 
    40                                 return 0 
    41                         } 
    42                         sleep 30 
    43                 done 
    44         } 
     6vnstat_option() { 
     7        sed -ne "s/^[[:space:]]*$1[[:space:]]*['\"]\([^'\"]*\)['\"].*/\1/p" \ 
     8                /etc/vnstat.conf 
    459} 
    4610 
    4711start() { 
    48         [ -d $LIB_D ] || mkdir -p $LIB_D 
    49         [ -d $WWW_D ] || mkdir -p $WWW_D 
     12        local lib="$(vnstat_option DatabaseDir)" 
     13        local pid="$(vnstat_option PidFile)" 
    5014 
    51         config_load system 
    52         config_foreach system_config system 
     15        [ -n "$lib" ] || { 
     16                echo "Error: No DatabaseDir set in vnstat.conf" >&2 
     17                exit 1 
     18        } 
     19 
     20        [ -n "$pid" ] || { 
     21                echo "Error: No PidFile set in vnstat.conf" >&2 
     22                exit 1 
     23        } 
     24 
     25        mkdir -p "$lib" 
     26 
     27        init_ifaces() { 
     28                local cfg="$1" 
     29                init_iface() { /usr/bin/vnstat -u -i "$1" >/dev/null; } 
     30                config_list_foreach "$cfg" interface init_iface 
     31                return 1 
     32        } 
    5333 
    5434        config_load vnstat 
    55         config_foreach do_download interface 
     35        config_foreach init_ifaces vnstat 
    5636 
    57         [ ! -f $PID_F ] && $VNSTATD_BIN -d 
     37        /usr/sbin/vnstatd -d 
    5838} 
    5939 
    6040stop() { 
    61         [ -f $PID_F ] && kill $(cat $PID_F) 
     41        local pid="$(vnstat_option PidFile)" 
     42        [ -n "$pid" ] && { 
     43                service_kill vnstatd "$pid" 
     44                rm -f "$pid" 
     45        } 
    6246} 
    63  
    64 reload() { 
    65         [ -f $PID_F ] && kill -HUP $(cat $PID_F) 
    66 } 
    67  
Note: See TracChangeset for help on using the changeset viewer.