about summary refs log tree commit diff
path: root/Completion/Linux/Command/_iwconfig
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Linux/Command/_iwconfig')
-rw-r--r--Completion/Linux/Command/_iwconfig29
1 files changed, 29 insertions, 0 deletions
diff --git a/Completion/Linux/Command/_iwconfig b/Completion/Linux/Command/_iwconfig
new file mode 100644
index 000000000..5957a7603
--- /dev/null
+++ b/Completion/Linux/Command/_iwconfig
@@ -0,0 +1,29 @@
+#compdef iwconfig
+
+local iwparams prevword expl
+
+iwparams=(
+essid nwid freq channel sens mode ap nick rate rts frag txpower enc
+key power retry
+)
+
+if (( CURRENT == 2 )); then
+  _net_interfaces || compadd -- --help --version
+  return
+fi
+
+prevword="$words[CURRENT-1]"
+
+if [[ -n ${iwparams[(r)$prevword]} ]]; then
+  case "$prevword" in
+    (mode)
+      _wanted tag expl 'operating mode' \
+        compadd Ad-Hoc Managed Master Repeater Secondary Monitor Auto
+    ;;
+    (*)
+      _wanted tag expl "$prevword value" \
+        compadd off
+  esac
+else
+  _wanted tag expl 'iwconfig parameter' compadd $iwparams commit
+fi