# insmod(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 _insmod() { # 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 # TODO: match only one file _filedir '@(ko?(.gz|.xz|.zst))' # TODO: add module parameter completion, based of modinfo fi } && complete -F _insmod insmod