diff options
Diffstat (limited to 'Completion/BSD')
-rw-r--r-- | Completion/BSD/Command/.distfiles | 1 | ||||
-rw-r--r-- | Completion/BSD/Command/_sockstat | 23 |
2 files changed, 24 insertions, 0 deletions
diff --git a/Completion/BSD/Command/.distfiles b/Completion/BSD/Command/.distfiles index 86530b8ea..d08edf814 100644 --- a/Completion/BSD/Command/.distfiles +++ b/Completion/BSD/Command/.distfiles @@ -15,4 +15,5 @@ _portmaster _portsnap _powerd _procstat +_sockstat ' 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))' |