Compare commits

...

2 commits

Author SHA1 Message Date
d8eb38dd16 feat: add completion script for zsh
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-26 22:56:37 +01:00
b3422db063 feat: add completion script for bash 2023-12-26 22:54:51 +01:00
2 changed files with 76 additions and 0 deletions

View 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

View 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