From: Oliver Kiddle <okiddle@yahoo.co.uk>
To: Zsh workers <zsh-workers@zsh.org>
Subject: PATCH: dhclient completion
Date: Thu, 17 Aug 2017 17:48:35 +0200 [thread overview]
Message-ID: <26473.1502984915@thecus.kiddle.eu> (raw)
This handles free/openbsd and brings options up-to-date for the ISC
implementation used on NetBSD and some linuxes.
I've just noticed that the chsh patch I just sent in the last e-mail was
reversed so sorry about that.
Oliver
diff --git a/Completion/Unix/Command/_dhclient b/Completion/Unix/Command/_dhclient
index dafe299d9..10cb551e0 100644
--- a/Completion/Unix/Command/_dhclient
+++ b/Completion/Unix/Command/_dhclient
@@ -2,27 +2,69 @@
local args
-if _pick_variant three=V3 two --help; then
- args=(
- '-q[quiet]'
- '-1[only try once to get a lease]'
- '-r[release the current lease]'
- '-lf[lease file]:lease file:_files'
- '-pf[pid file]:pid file:_files'
- '-cf[config file]:config file:_files'
- '-sf[script file]:script file:_files'
- '-e[env vars to pass to child processes]:env var key value pairs:'
- '-s[transmit to specific target instead of broadcast]:server:_hosts'
- '-g[force giaddr field]:relay:_hosts'
- '-n[do not configure any interfaces]'
- '-nw[daemonize immediately rather than wait for IP acquisition]'
- '-w[do not exit if there are no interfaces found to configure]'
- )
-else
- args=( '-e[exit if configuration failed after a certain time]' )
-fi
+case $OSTYPE in
+ (open|free)bsd*)
+ args+=(
+ '-c+[specify configuration file]:file:_files'
+ '-l+[specify leases file]:file:_files'
+ '-u[reject leases with unknown options]'
+ )
+ ;|
+ freebsd*)
+ args+=(
+ '(-d)-b[immediately move to the background]'
+ '-p+[specify PID file]:file:_files'
+ )
+ ;;
+ openbsd*)
+ args+=(
+ '-i+[ignore values provided by leases for specified options]:options'
+ '-L+[specify file to write option data too]:file:_files'
+ )
+ ;;
+ *) # ISC implementation, used on Linux and NetBSD
+ args=(
+ '!(-6 -S -T -P -D -N)-4'
+ '(-4 -s)-6[use the DHCPv6 protocol]'
+ '-1[only try once to get a lease]'
+ '(-d)-nw[daemonize immediately rather than wait for IP acquisition]'
+ "-m[don't require responding ethernet address of dhcp server to match expectation]"
+ '-v[verbose log messages]'
+ "-w[don't exit if there are no interfaces found to configure]"
+ "-n[don't configure any interfaces]"
+ '-e[specify env vars to pass to child processes]:env var key value pairs'
+ '(-x)-r[release the current lease]'
+ '(-r)-x[stop the running DHCP client without releaseing current lease]'
+ '-p[specify port to transmit to / listen on]:port:_ports'
+ '(-6)-s[transmit to specific target instead of broadcast]:server:_hosts'
+ '-g[force giaddr field]:relay:_hosts'
+ '-i[use a DUID with DHCPv4 clients]'
+ '-I[use the standard DDNS scheme]'
+ '--version[display version number]'
+ '(-4)-S[use Information-request to get only stateless configuration]'
+ '(-4)*-T[ask for IPv6 temporary addresses]'
+ '(-4)-P[enable IPv6 prefix delegation]'
+ '-D[specify DUID selection method]:DUID:((LL\:link-layer LLT\:link-layer\ plus\ timestamp))'
+ '(-4)-N[restore normal address query for IPv6]'
+ '-lf[lease file]:lease file:_files'
+ '(--no-pid)-pf[pid file]:pid file:_files'
+ '(-pf)--no-pid[disable writing pid files]'
+ '-cf[config file]:config file:_files'
+ '-sf[script file]:script file:_files'
+ '-4o6[DHCPv4 over DHCPv6 protocol]:port'
+ "-nc[don't drop capabilities]"
+ '-B[set the BOOTP broadcast flag in request packets]'
+ '-C[specify dhcp-client-identifier option]:option'
+ '(-F)-H[specify host-name option]:host name:_hosts'
+ '(-H)-F[specify fully qualified hostname option]:host name:_hosts'
+ '-V[specify vendor-class-identifier option]:option'
+ '--request-options[specify list of options the client is to request from the server]:options'
+ '--timeout[specify time after which dhclient will decide that no DHCP servers can be contacted]:timeout'
+ )
+ ;;
+esac
-_arguments $args \
- '-p[port to transmit to / listen on]:_ports' \
- '-d[force to run in foreground]' \
+_arguments -s -S -A "-*" $args \
+ '-q[quiet]' \
+ '(-b -nw)-d[remain as a foreground process]' \
':interface:_net_interfaces'
reply other threads:[~2017-08-17 15:54 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=26473.1502984915@thecus.kiddle.eu \
--to=okiddle@yahoo.co.uk \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).