summaryrefslogtreecommitdiff
path: root/Completion/BSD/Command/_sockstat
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/BSD/Command/_sockstat')
-rw-r--r--Completion/BSD/Command/_sockstat23
1 files changed, 23 insertions, 0 deletions
diff --git a/Completion/BSD/Command/_sockstat b/Completion/BSD/Command/_sockstat
new file mode 100644
index 000000000..2acbe6bec
--- /dev/null
+++ b/Completion/BSD/Command/_sockstat
@@ -0,0 +1,23 @@
+#compdef sockstat
+
+local tmp_proto protocols proto
+
+tmp_proto=(${${(M)${(f)"$(</etc/protocols)"}##[a-z0-9]*}})
+for proto ($tmp_proto) {
+ case $proto in
+ *\#*)
+ protocols=($protocols ${${(j: :)${=proto}}// *\# /:})
+ ;;
+ *)
+ protocols=($protocols ${${(j: :)${=proto}}// */})
+ esac
+}
+
+_arguments -s \
+ '-4[Show AF_INET (IPv4) sockets]' \
+ '-6[Show AF_INET6 (IPv6) sockets]' \
+ '-c[Show connected sockets]' \
+ '-l[Show listening sockets]' \
+ '-u[Show AF_LOCAL (UNIX) sockets]' \
+ '-p[Only show Internet sockets if the port number is on the specified list]' \
+ '-P[Only show sockets of the specified protocols]:protocols:(($protocols))'