about summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_dhclient34
1 files changed, 29 insertions, 5 deletions
diff --git a/Completion/Unix/Command/_dhclient b/Completion/Unix/Command/_dhclient
index 47af999b0..5208ea05b 100644
--- a/Completion/Unix/Command/_dhclient
+++ b/Completion/Unix/Command/_dhclient
@@ -1,7 +1,31 @@
-#compdef dhclient
+#compdef dhclient dhclient3
 
-_arguments \
-      '-p[Port to transmit to / listen on]' \
+local _dhclient_common_args
+
+_dhclient_common_args=(
+      '-p[port to transmit to / listen on]:_ports'
+      '-d[force to run in foreground]'
+      ':interface:_net_interfaces'
+)
+
+if _pick_variant three=V3 two --help; then
+  _arguments \
+      '-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]' \
+      "$_dhclient_common_args[@]"
+else
+  _arguments \
       '-e[Exit if configuration failed after a certain time]' \
-      '-d[Force to run in foreground]' \
-      ':Interface:_net_interfaces'
+      "$_dhclient_common_args[@]"
+fi