Compare commits
2 commits
e1465ebe67
...
d8eb38dd16
Author | SHA1 | Date | |
---|---|---|---|
d8eb38dd16 | |||
b3422db063 |
2 changed files with 76 additions and 0 deletions
36
misc/igmpgen_completion.sh
Normal file
36
misc/igmpgen_completion.sh
Normal file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Function for autocompletion
|
||||
_igmpgen_completion() {
|
||||
local cur prev opts igmp_types
|
||||
COMPREPLY=() # Array variable storing the completions.
|
||||
cur="${COMP_WORDS[COMP_CWORD]}" # Current word being completed.
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}" # Previous word.
|
||||
|
||||
# Options for igmpgen
|
||||
opts="-i -t -g -s -d -n"
|
||||
|
||||
# Available IGMP packet types
|
||||
igmp_types="1.query 1.report 1.dvmrp 2.query 2.report 2.leave 3.report"
|
||||
|
||||
case "${prev}" in
|
||||
-t)
|
||||
COMPREPLY=( $(compgen -W "${igmp_types}" -- ${cur}) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the previous word is an option requiring an argument, don't complete with options
|
||||
case "${prev}" in
|
||||
-i | -g | -s | -d | -n)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# Default completion: suggest igmpgen options
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
}
|
||||
|
||||
# Attach the completion function to igmpgen command
|
||||
complete -F _igmpgen_completion igmpgen
|
||||
|
40
misc/igmpgen_completion.zsh
Normal file
40
misc/igmpgen_completion.zsh
Normal file
|
@ -0,0 +1,40 @@
|
|||
#compdef igmpgen
|
||||
|
||||
# Function to handle autocompletion for igmpgen
|
||||
_igmpgen() {
|
||||
local -a options
|
||||
local -a igmp_types
|
||||
|
||||
# Options for igmpgen
|
||||
options=(
|
||||
'-i[Specify the network interface (e.g., eth0)]'
|
||||
'-t[Specify the IGMP packet type and version (e.g., 1.query)]'
|
||||
'-g[Specify the IGMP group (e.g., 224.0.0.1)]'
|
||||
'-s[Specify the source IP and port (e.g., 192.168.1.1:1234)]'
|
||||
'-d[Specify the destination IP and port (e.g., 224.0.0.2:5678)]'
|
||||
'-n[Specify delay between packets in seconds]'
|
||||
)
|
||||
|
||||
# Available IGMP packet types
|
||||
igmp_types=(
|
||||
'1.query'
|
||||
'1.report'
|
||||
'1.dvmrp'
|
||||
'2.query'
|
||||
'2.report'
|
||||
'2.leave'
|
||||
'3.report'
|
||||
)
|
||||
|
||||
_arguments -s $options && return
|
||||
|
||||
case $words[1] in
|
||||
-t)
|
||||
_describe -t igmp-types 'IGMP packet type' igmp_types
|
||||
return
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_igmpgen
|
||||
|
Loading…
Reference in a new issue