bashcompletiondir=@bashcompletiondir@
dist_bashcompletion_DATA = \
shell-completion/bash/kmod \
- shell-completion/bash/lsmod
+ shell-completion/bash/lsmod \
+ shell-completion/bash/rmmod
fishcompletiondir=@fishcompletiondir@
dist_fishcompletion_DATA = \
- shell-completion/fish/lsmod.fish
+ shell-completion/fish/lsmod.fish \
+ shell-completion/fish/rmmod.fish
zshcompletiondir=@zshcompletiondir@
dist_zshcompletion_DATA = \
- shell-completion/zsh/_lsmod
+ shell-completion/zsh/_lsmod \
+ shell-completion/zsh/_rmmod
install-exec-hook:
if BUILD_TOOLS
_completions = [
'lsmod',
+ 'rmmod',
]
if completiondir != 'no'
--- /dev/null
+# rmmod(8) completion -*- shell-script -*-
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
+#
+# Formatted using:
+# shfmt --language-dialect bash --indent 4 --func-next-line
+
+_rmmod()
+{
+ # long/short opt pairs
+ local -A opts=(
+ ['force']='f'
+ ['syslog']='s'
+ ['verbose']='v'
+ ['version']='V'
+ ['help']='h'
+ )
+
+ local cur="${COMP_WORDS[COMP_CWORD]}"
+
+ if [[ $cur == --* ]]; then
+ COMPREPLY=($(compgen -P '--' -W "${!opts[*]}" -- "${cur:2}"))
+ elif [[ $cur == -* ]]; then
+ if (( ${#cur} != 2 )); then
+ COMPREPLY=($(compgen -P '--' -W "${!opts[*]}" -- "${cur:2}"))
+ fi
+ COMPREPLY+=($(compgen -P '-' -W "${opts[*]}" -- "${cur:1}"))
+ else
+ local -a modules=($(lsmod | cut -f1 -d' '))
+ COMPREPLY=($(compgen -W "${modules[*]}" -- "${cur}"))
+ fi
+} &&
+ complete -F _rmmod rmmod
--- /dev/null
+# rmmod(8) completion -*- shell-script -*-
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
+
+# globally disable file completions
+complete -c rmmod -f
+
+complete -c rmmod -s f -l force -d "DANGEROUS: forces a module unload and may crash your machine"
+complete -c rmmod -s s -l syslog -d 'print to syslog, not stderr'
+complete -c rmmod -s v -l verbose -d 'enables more messages'
+complete -c rmmod -s V -l version -d 'show version'
+complete -c rmmod -s h -l help -d 'show this help'
+
+# provide an exclusive (x) list of required (r) answers (a)
+complete -c rmmod -x -ra "(lsmod | cut -f1 -d' ')"
--- /dev/null
+#compdef rmmod
+
+# rmmod(8) completion -*- shell-script -*-
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com>
+
+(( $+functions[_rmmod_modules] )) || _rmmod_modules()
+{
+ local -a _modules
+ _modules=(${${(f)"$(_call_program modules lsmod)"}[2,-1]%% *})
+ _values 'modules' "$_modules[@]"
+}
+
+_arguments \
+ {-f,--force}'[DANGEROUS: forces a module unload and may crash your machine]' \
+ {-s,--syslog}'[print to syslog, not stderr]' \
+ {-v,--verbose}'[enables more messages]' \
+ {-V,--version}'[show version]' \
+ {-h,--help}'[show this help]' \
+ '*::modules:_rmmod_modules'