mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-10 23:24:39 +00:00
updated ping completions
support for ping from iputils (version 20210202) support for ping from inetutils (version 2.1) support for ping from busybox (version 1.33.1) support for ping from FreeBSD and macOS (by @juntuu)
This commit is contained in:
parent
a00ebc65af
commit
60a9dcbf05
1 changed files with 131 additions and 29 deletions
|
@ -1,29 +1,131 @@
|
|||
complete -c ping -a "(__fish_print_hostnames)" -x
|
||||
complete -c ping -s a -d "Audible ping"
|
||||
complete -c ping -s A -d "Adaptive ping"
|
||||
complete -c ping -s b -d "Allow pinging a broadcast address"
|
||||
complete -c ping -s B -d "Do not allow ping to change source address of probes"
|
||||
complete -c ping -s c -d "Stop after specified number of ECHO_REQUEST packets" -x
|
||||
complete -c ping -s d -d "Set the SO_DEBUG option on the socket being used"
|
||||
complete -c ping -s F -d "Allocate and set 20 bit flow label on ECHO_REQUEST packets" -x
|
||||
complete -c ping -s f -d "Flood ping"
|
||||
complete -c ping -s i -d "Wait specified interval of seconds between sending each packet" -x
|
||||
complete -c ping -s I -d "Set source address to specified interface address" -x -a "(__fish_print_interfaces; __fish_print_addresses)"
|
||||
complete -c ping -s l -d "Send the specified number of packets without waiting for reply" -x
|
||||
complete -c ping -s L -d "Suppress loopback of multicast packets"
|
||||
complete -c ping -s n -d "Numeric output only"
|
||||
complete -c ping -s p -d "Pad packet with empty bytes" -x
|
||||
complete -c ping -s Q -d "Set Quality of Service -related bits in ICMP datagrams" -x
|
||||
complete -c ping -s q -d "Quiet mode"
|
||||
complete -c ping -s R -d "Record route"
|
||||
complete -c ping -s r -d "Bypass the normal routing tables"
|
||||
complete -c ping -s s -d "Specifies the number of data bytes to be sent" -x
|
||||
complete -c ping -s S -d "Set socket buffer size" -x
|
||||
complete -c ping -s t -d "Set the IP Time to Live" -x
|
||||
complete -c ping -s T -d "Set special IP timestamp options" -x
|
||||
complete -c ping -s M -d "Select Path MTU Discovery strategy" -x -a "do want dont"
|
||||
complete -c ping -s U -d "Print full user-to-user latency"
|
||||
complete -c ping -s v -d "Verbose mode"
|
||||
complete -c ping -s V -d "Display version and exit"
|
||||
complete -c ping -s w -d "Specify a timeout, in seconds, before ping exits" -x
|
||||
complete -c ping -s W -d "Time to wait for a response, in seconds" -x
|
||||
complete -c ping -xa "(__fish_print_hostnames)"
|
||||
|
||||
set -l ping_version (ping -V 2>&1 | string collect)
|
||||
|
||||
switch $ping_version
|
||||
case '*iputils*'
|
||||
# completions for ping from iputils
|
||||
complete -c ping -s 4 -d "Use IPv4"
|
||||
complete -c ping -s 6 -d "Use IPv6"
|
||||
complete -c ping -s a -d "Audible ping"
|
||||
complete -c ping -s A -d "Adaptive ping"
|
||||
complete -c ping -s b -d "Allow pinging a broadcast address (IPv4 only)"
|
||||
complete -c ping -s B -d "Sticky source address"
|
||||
complete -c ping -s c -d "Stop after specified number of packets" -x
|
||||
complete -c ping -s D -d "Print timestamps"
|
||||
complete -c ping -s d -d "Set SO_DEBUG socket option"
|
||||
complete -c ping -s f -d "Flood ping"
|
||||
complete -c ping -s F -d "Define flow label (IPv6 only)" -x
|
||||
complete -c ping -s h -d "Print help and exit"
|
||||
complete -c ping -s I -d "Set source address to specified interface address" -xa "(__fish_print_interfaces; __fish_print_addresses)"
|
||||
complete -c ping -s i -d "Seconds between sending each packet" -x
|
||||
complete -c ping -s L -d "Suppress loopback of multicast packets"
|
||||
complete -c ping -s l -d "Send the specified number of packets without waiting for reply" -x
|
||||
complete -c ping -s m -d "Tag the packets going out" -x
|
||||
complete -c ping -s M -d "Select Path MTU Discovery strategy" -xa "do want dont"
|
||||
complete -c ping -s n -d "No dns name resolution"
|
||||
complete -c ping -s N -d "Send ICMPv6 Node Information Queries (IPv6 only)" -x
|
||||
complete -c ping -s O -d "Report outstanding replies"
|
||||
complete -c ping -s p -d "Contents of padding byte" -x
|
||||
complete -c ping -s R -d "Record route (IPv4 only)"
|
||||
complete -c ping -s q -d "Quiet mode"
|
||||
complete -c ping -s Q -d "Set QoS bits in ICMP datagrams" -x
|
||||
complete -c ping -s s -d "Number of data bytes to be sent" -x
|
||||
complete -c ping -s S -d "Set socket buffer size" -x
|
||||
complete -c ping -s t -d "Set the IP Time to Live" -x
|
||||
complete -c ping -s T -d "Set IP timestamp options (IPv4 only)" -xa "tsonly tsandaddr tsprespec"
|
||||
complete -c ping -s U -d "Print full user-to-user latency"
|
||||
complete -c ping -s v -d "Verbose mode"
|
||||
complete -c ping -s V -d "Display version and exit"
|
||||
complete -c ping -s w -d "Specify a timeout, in seconds, before ping exits" -x
|
||||
complete -c ping -s W -d "Time to wait for a response, in seconds" -x
|
||||
|
||||
case '*inetutils*'
|
||||
# completions for ping from GNU inetutils
|
||||
complete -c ping -l address -l mask -d "Send ICMP_ADDRESS packets"
|
||||
complete -c ping -l echo -d "Send ICMP_ECHO packets"
|
||||
complete -c ping -l timestamp -d "Send ICMP_TIMESTAMP packets"
|
||||
complete -c ping -s t -l type -d "Set packet type" -x
|
||||
complete -c ping -s c -l count -d "Set number of packets to send" -x
|
||||
complete -c ping -s d -l debug -d "Set the SO_DEBUG option"
|
||||
complete -c ping -s i -l interval -d "Set seconds to wait between sending each packet" -x
|
||||
complete -c ping -s n -l numeric -d "Do not resolve host addresses"
|
||||
complete -c ping -s r -l ignore-routing -d "Send directly to a host on an attached network"
|
||||
complete -c ping -l ttl -d "Set time-to-live" -x
|
||||
complete -c ping -s T -l tos -d "Set type of service" -x
|
||||
complete -c ping -s v -l verbose -d "Verbose output"
|
||||
complete -c ping -s w -l timeout -d "Stop after N seconds" -x
|
||||
complete -c ping -s W -l linger -d "Number of seconds to wait for response" -x
|
||||
complete -c ping -s f -l flood -d "Flood ping"
|
||||
complete -c ping -l ip-timestamp -d "Set IP timestamp type" -xa "tsonly tsaddr"
|
||||
complete -c ping -s l -l preload -d "Send number of packets as fast as possible" -x
|
||||
complete -c ping -s p -l pattern -d "Fill ICMP packet with given pattern" -x
|
||||
complete -c ping -s q -l quiet -d "Quiet output"
|
||||
complete -c ping -s R -l route -d "Record route"
|
||||
complete -c ping -s s -l size -d "Set number of data octets" -x
|
||||
complete -c ping -s \? -l help -d "Show help"
|
||||
complete -c ping -l usage -d "Short usage message"
|
||||
complete -c ping -s V -l version -d "Print program version"
|
||||
|
||||
case '*BusyBox*'
|
||||
# completions for ping from busybox
|
||||
complete -c ping -s 4 -d "Use IPv4"
|
||||
complete -c ping -s 6 -d "Use IPv6"
|
||||
complete -c ping -s c -d "Set number of pings to send" -x
|
||||
complete -c ping -s s -d "Set data size" -x
|
||||
complete -c ping -s i -d "Interval (seconds)" -x
|
||||
complete -c ping -s A -d "Ping as soon as reply is received"
|
||||
complete -c ping -s t -d "Set TTL" -x
|
||||
complete -c ping -s I -d "Source interface or IP address" -xa "(__fish_print_interfaces; __fish_print_addresses)"
|
||||
complete -c ping -s W -d "Seconds to wait for the first response" -x
|
||||
complete -c ping -s w -d "Seconds until ping exits" -x
|
||||
complete -c ping -s q -d "Quiet"
|
||||
complete -c ping -s p -d "Payload pattern" -x
|
||||
|
||||
case '*'
|
||||
set -l ping_os_version (uname)
|
||||
switch $ping_os_version
|
||||
case '*FreeBSD*' '*Darwin*'
|
||||
# In common with FreeBSD and Apple
|
||||
complete -c ping -s A -d "Audible ping"
|
||||
complete -c ping -s a -d "Audible ping"
|
||||
complete -c ping -s C -d "Prohibit the socket from using the cellular network interface"
|
||||
complete -c ping -s c -d "Stop after specified number of packets" -x
|
||||
complete -c ping -s D -d "Set the Don't Fragment bit"
|
||||
complete -c ping -s d -d "Set the SO_DEBUG socket option"
|
||||
complete -c ping -s f -d "Flood ping"
|
||||
complete -c ping -s G -d "Maximum payload size for sweeping pings" -x
|
||||
complete -c ping -s g -d "Minimum payload size for sweeping pings" -x
|
||||
complete -c ping -s h -d "Payload size increment for sweeping pings" -x
|
||||
complete -c ping -s I -d "Source multicast packets with the given interface address" -x
|
||||
complete -c ping -s i -d "Seconds between sending each packet" -x
|
||||
complete -c ping -s L -d "Suppress loopback of multicast packets"
|
||||
complete -c ping -s l -d "Send specified number of packets as fast as possible" -x
|
||||
complete -c ping -s M -d "Use ICMP_MASKREQ or ICMP_TSTAMP instead of ICMP_ECHO" -xa "mask time"
|
||||
complete -c ping -s m -d "Time To Live for outgoing packets" -x
|
||||
complete -c ping -s n -d "Numeric output only"
|
||||
complete -c ping -s o -d "Exit successfully after receiving one reply packet"
|
||||
complete -c ping -s P -d "Specify IPsec policy for the ping session" -x
|
||||
complete -c ping -s p -d "Pattern to fill the sent packets" -x
|
||||
complete -c ping -s Q -d "Somewhat quiet output"
|
||||
complete -c ping -s q -d "Quiet output"
|
||||
complete -c ping -s R -d "Record route"
|
||||
complete -c ping -s r -d "Bypass the normal routing tables"
|
||||
complete -c ping -s S -d "Source address for outgoing packets" -xa "(__fish_print_addresses)"
|
||||
complete -c ping -s s -d "The number of data bytes to be sent" -x
|
||||
complete -c ping -s T -d "Time To Live for multicasted packets" -x
|
||||
complete -c ping -s t -d "Timeout (seconds) before ping exits" -x
|
||||
complete -c ping -s v -d "Verbose output"
|
||||
complete -c ping -s W -d "Time (milliseconds) to wait for a reply for each packet sent" -x
|
||||
complete -c ping -s z -d "Use the specified type of service" -x
|
||||
|
||||
if string match -q '*Darwin*' $ping_os_version
|
||||
# Apple specific
|
||||
complete -c ping -s b -d "Bind the socket to specified interface for sending" -xa "(__fish_print_interfaces)"
|
||||
complete -c ping -s k -d "Traffic class to use for sending ICMP packets" -xa "BK_SYS BK BE RD OAM AV RV VI VO CTL"
|
||||
complete -c ping -s K -d "Network service type to use for sending ICMP packets" -xa "BK_SYS BK BE RV AV RD OAM VI SIG VO"
|
||||
complete -c ping -l apple-connect -d "Connects the socket to the destination address"
|
||||
complete -c ping -l apple-time -d "Prints the time a packet was received"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue