fix: shellcheck for dracut-bash-completion.sh

master
Harald Hoyer 2021-02-12 13:26:09 +01:00 committed by Harald Hoyer
parent f4053eb0c8
commit fb7b8be883
1 changed files with 15 additions and 7 deletions

View File

@ -1,4 +1,4 @@
#
#!/bin/bash
# Copyright 2013 Red Hat, Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
@ -16,13 +16,13 @@
#

__contains_word () {
local word=$1; shift
for w in $*; do [[ $w = $word ]] && return 0; done
local word="$1"; shift
for w in "$@"; do [[ $w = "$word" ]] && return 0; done
return 1
}

_dracut() {
local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
local -A OPTS=(
[STANDALONE]='-f -v -q -l -H -h -M -N
--ro-mnt --force --kernel-only --no-kernel --strip --nostrip
@ -42,6 +42,7 @@ _dracut() {
'
)

# shellcheck disable=SC2086
if __contains_word "$prev" ${OPTS[ARG]}; then
case $prev in
--kmoddir|-k|--fwdir|--confdir|--tmpdir)
@ -56,20 +57,24 @@ _dracut() {
comps=$(dracut --list-modules 2>/dev/null)
;;
--persistent-policy)
comps=$(cd /dev/disk/; echo *)
comps=$(cd /dev/disk/ || return 0; printf -- "%s " *)
;;
--kver)
comps=$(cd /lib/modules; echo [0-9]*)
comps=$(cd /lib/modules || return 0; echo [0-9]*)
;;
*)
return 0
;;
esac
# shellcheck disable=SC2207
# shellcheck disable=SC2016
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
return 0
fi

if [[ $cur = -* ]]; then
# shellcheck disable=SC2207
# shellcheck disable=SC2016
COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
return 0
fi
@ -80,7 +85,10 @@ _dracut() {
_filedir
return 0
elif [[ $args -eq 2 ]]; then
comps=$(cd /lib/modules; echo [0-9]*)
# shellcheck disable=SC2034
comps=$(cd /lib/modules || return 0; echo [0-9]*)
# shellcheck disable=SC2207
# shellcheck disable=SC2016
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
return 0
fi