Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
new completion function for pfctl
- X-seq: zsh-workers 27029
- From: Baptiste Daroussin <baptiste.daroussin@xxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: new completion function for pfctl
- Date: Thu, 4 Jun 2009 12:59:16 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:subject :message-id:mime-version:content-type:content-disposition:user-agent; bh=qKd47CdSGG3Qm0SuMfZb9yP5GkTOSSnyIXX98Flk9Es=; b=Q8IW1/WG3gwyc6RgoQW7vZ4Q0tV5Q5onSzX5bIslF2vjFWmBM3wqSdusFZ1cUGHtFv HhirCuL3i9ubGvJQ9Cu9dmfGDPnf7CDOxXK1fdojqNf1eCb4xy6dNZMk/o69mtEpgwlT XmmLNLS6xgzXu22WSktzz/XMlXk1heBcdnJ6E=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=e466ra0YEvbfg7OfvhnS/34GJL/WjGINO570WR028FbAkAst87J31V5r944mqAsbPm Kz3k9mDD5zPfU4oGWjIbUv1tmBMI5bPTY8UjKQB4hW69YE54fWFC1/mX3j1GTyzBtWhy 3ZuLK9qxlzsTQMBOFvDG43FQZSRPy5qPe/noI=
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
Hi all,
Here is a new completion for pfctl (I think it should be placed in
Completion/BSD/Command)
regards,
Bapt
#compdef pfctl
local pfctl_flush_modifiers pfctl_optimizer_level pfctl_show_modifiers pfctl_tables_command pfctl_debug_level
pfctl_flush_modifiers=(
'all:Flush all'
'info:Flush the filter information'
'nat:Flush the NAT rules'
'osfp:Flush the passive operating system fingerprints'
'queue:Flush the queue rules'
'rules:Flush the filter rules'
'state:Flush the stable table'
'Sources:Flush the source tracking table'
'Tables:Flush the tables'
)
pfctl_show_modifiers=(
'nat:Show the currently loaded NAT rules'
'queue:Show the currently loaded queue rules'
'rules:Show the currently loaded filter rules'
'Anchors:Show the currently loaded anchors directly attached to the main ruleset'
'state:Show the contents of the state table'
'Sources:Show the contents of the source tracking table'
'info:Show filter information'
'labels:Show per-rule statistics of filter rules with labels'
'timeouts:Show the current global timeouts'
'memory:Show the current pool memory hard limits'
'Tables:Show the list of tables'
'osfp:Show the list of operating system fingerprints'
'Interfaces:Show the list of interfaces and interface drivers available to PF'
'all:Show all except for the lists of interfaces and operating system fingerprints'
)
pfctl_optimizer_level=(
'none:Disable the ruleset optimizer'
'basic:Enable basic ruleset optimizations'
'profile:Enable basic ruleset optimizations with profiling'
)
pfctl_tables_command=(
'kill:Kill a table'
'flush:Flush all addresses of a table'
'add:Add one or more addresses in a table'
'delete:Delete one or more addresses from a table'
'expire:Delete addresses which had their statistics cleared more than number seconds ago'
'replace:Replace the addresses of the table'
'show:Show the content (addresses) of a table'
'test:Test if the given addresses match a table'
'zero:Clear all the statistics of a table'
'load:Load only the table definitions from pf.conf(5)'
)
pfctl_debug_level=(
"none:Don\'t generate debug messages"
'urgent:Generate debug messages only for serious errors'
'misc:Generate debug messages for various errors'
'loud:Generate debug messages for common conditions'
)
_iface() {
local pfctl_iface
pfctl_iface=($(pfctl -s Interfaces))
compadd $pfctl_iface
}
_tables() {
local pfctl_tables
pfctl_tables=($(pfctl -s Tables))
compadd $pfctl_tables
}
# TODO:
# Missing -a
#
_arguments -s \
'-F[Flush the filter parameters specified by modifier]:modifier:(($pfctl_flush_modifiers))' \
'-A[Load only the queue rules present in the rule file]' \
'-D[Define macro to be set to value]:macro:' \
'-d[Disable the packet filter]' \
'-e[Enable the packet filter]' \
'-f[Load the rules contained in a file]:configuration file:_files' \
'-g[Include output helpful for debugging]' \
'-h[Help]' \
'-i[Restrict the operation to the given interface]:interface:_iface' \
'-K[Kill all of the source tracking entries originating from the specified host or network]:host or network:_hosts' \
'-k[Kill all of the state entries originating from the specified host or network]:host or network:_hosts' \
'-m[Merge in explicitly given options]' \
'-N[Load only the NAT rules present in the rule file]' \
'-n[Do not actually load rules, just parse them]' \
'-O[Load only the options present in the rule file]' \
'-o[Control the ruleset optimizer]:level:(($pfctl_optimizer_level))' \
'-p[Use the device file device instead of the default /dev/pf]:device:_files' \
'-q[Only print errors and warnings]' \
'-R[Load only the filter rules present in the rule file]' \
'-r[Perform reverse DNS lookups on states when displaying them]' \
'-s[Show the filter parameters specified by modifier]:modifier:(($pfctl_show_modifiers ))' \
'-T[Specify the command to apply to the table]:command:(($pfctl_tables_command))' \
'-t[Specify the name of the table]:table:_tables' \
'-v[Produce more verbose output]' \
'-x[Set the debug level]:debug level:(($pfctl_debug_level))' \
'-z[Clear per-rule statistics]'
Messages sorted by:
Reverse Date,
Date,
Thread,
Author