Permalink
Browse files

Completion for vnstat

  • Loading branch information...
aschrab committed Sep 5, 2012
1 parent 9966dd9 commit f01ede0bf8157ae0cdb00a0123176f2e3cc2a495
Showing with 114 additions and 0 deletions.
  1. +114 −0 src/_vnstat
View
@@ -0,0 +1,114 @@
+#compdef vnstat
+# ------------------------------------------------------------------------------
+# Copyright (c) 2012 Github zsh-users - http://github.com/zsh-users
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the zsh-users nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# Completion script for vnstat 1.10
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * Aaron Schrab <aaron@schrab.com>
+#
+# ------------------------------------------------------------------------------
+
+local context state state_descr line
+typeset -A opt_args
+
+local period="-d --days -h --hours -m --months -w --weeks"
+
+_arguments : \
+ '--cleartop[Remove all top 10 entries]' \
+ '--config[Specify alternate configuration file]:file:_files' \
+ "($period)"{-d,--days}'[Show traffic for days]' \
+ "($period)"{-h,--hours}'[Show trafic for last 24 hours]' \
+ "($period)"{-m,--months}'[Show traffic for months]' \
+ "($period)"{-w,--weeks}'[Show traffic for 7 days]' \
+ '--dbdir[Specify database directory]:directory:_files -/' \
+ '(-D --debug)'{-D,--debug}'[Show additional debug output]' \
+ '--delete[Delete database and stop monitoring selected interface]' \
+ '--dumpdb[Dump database in parseable format]' \
+ '(--disable)--enable[Enable updates for selected interface]' \
+ '(--enable)--disable[Disable updates for selected interface]' \
+ '(-i --iface)'{-i,--iface}'[Specify interface for actions]:interface:->interface' \
+ '--iflist[List available interfaces]' \
+ '(-l --live)'{-l,--live}'[Display current transfer rate]:mode:->live' \
+ '--locale[Specify locale]:locale:' \
+ '--nick[Set nickname for alias]:nickname:' \
+ '--oneline[Traffic summary in one-line, parseable format]' \
+ '(-q --query)'{-q,--query}'[Force database query mode]' \
+ '(-r --reset)'{-r,--reset}'[Reset internal counters]' \
+ '--rebuildtotal[Reset total trafic counters]' \
+ '(-ru --rateunit)'{-ru,--rateunit}'[Swap configured rate unit]' \
+ '--savemerged[Write result of database merge]' \
+ '(-s --short)'{-s,--short}'[Use short output mode]' \
+ '--style[Modify content and style of output]:style:->style' \
+ '--sync[Synchronize internal counters]' \
+ '--testkernel[Test kernel boot time information]' \
+ '(-t --top10)'{-t,--top10}'[Show all time top 10 traffic days]' \
+ '-tr[Calculate amount of trafffic in given time]:seconds:' \
+ '(-u --update)'{-u,--update}'[Update databases]' \
+ '--xml[Show database content in XML format]' \
+ '(-)'{-v,--version}'[Show current version]' \
+ '(-)'{-\?,--help}'[Show command summary]' \
+ '(-)--longhelp[Show complete options list]' \
+ && ret=0
+
+case "$state" in
+
+ (live)
+ _values 'Live mode' \
+ '0[Packets per second]' \
+ '1[Traffic counters]'
+ ;;
+
+ (style)
+ _values 'Output style' \
+ '0[Narrow output]' \
+ '1[Enable bar column]' \
+ '2[Bar column with average traffic rate]' \
+ '3[Enable average traffic rate]' \
+ '4[Disable use of terminal control characters]'
+ ;;
+
+ (interface)
+ local interfaces="$(_call_program interfaces 'vnstat --iflist')"
+ interfaces="${interfaces#*:}"
+ _values -s + 'Interface' ${(z)interfaces}
+ ;;
+
+esac
+
+# Local Variables:
+# mode: Shell-Script
+# sh-indentation: 2
+# indent-tabs-mode: nil
+# sh-basic-offset: 2
+# End:
+# vim: filetype=zsh shiftwidth=2 tabstop=2 expandtab

0 comments on commit f01ede0

Please sign in to comment.