From: Harald Hoyer Date: Fri, 12 Feb 2021 12:26:09 +0000 (+0100) Subject: fix: shellcheck for dracut-functions.sh X-Git-Tag: 052~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3483509ef66ba5d0a55b57e8b2f7ac5ab0877375;p=thirdparty%2Fdracut.git fix: shellcheck for dracut-functions.sh --- diff --git a/dracut-functions.sh b/dracut-functions.sh index be287c397..8ce1ef05e 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -31,6 +31,7 @@ strstr() { [[ $1 = *"$2"* ]]; } # Generic glob matching function. If glob pattern $2 matches anywhere in $1, OK strglobin() { [[ $1 = *$2* ]]; } # Generic glob matching function. If glob pattern $2 matches all of $1, OK +# shellcheck disable=SC2053 strglob() { [[ $1 = $2 ]]; } # returns OK if $1 contains literal string $2 at the beginning, and isn't empty str_starts() { [ "${1#"$2"*}" != "$1" ]; } @@ -47,7 +48,8 @@ find_binary() { [[ -z ${1##/*} ]] || _delim="/" if [[ "$1" == *.so* ]]; then - for l in libdirs ; do + # shellcheck disable=SC2154 + for l in $libdirs ; do _path="${l}${_delim}${1}" if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then printf "%s\n" "${_path}" @@ -89,7 +91,12 @@ ldconfig_paths() # $2 = comparision op (gt, ge, eq, le, lt, ne) # $3 = version b vercmp() { - local _n1=(${1//./ }) _op=$2 _n2=(${3//./ }) _i _res + local _n1 + read -a _n1 <<< "${1//./ }" + local _op=$2 + local _n2 + read -a _n2 <<< "${3//./ }" + local _i _res for ((_i=0; ; _i++)) do @@ -114,6 +121,7 @@ vercmp() { # Create all subdirectories for given path without creating the last element. # $1 = path mksubdirs() { + # shellcheck disable=SC2174 [[ -e ${1%/*} ]] || mkdir -m 0755 -p -- "${1%/*}" } @@ -160,8 +168,8 @@ convert_abs_rel() { # corner case #2 - own dir link [[ "${1%/*}" == "$2" ]] && { printf ".\n"; return; } - IFS="/" __current=($1) - IFS="/" __absolute=($2) + read -d '/' -r -a __current <<< "$1" + read -d '/' -a __absolute <<< "$2" __abssize=${#__absolute[@]} __cursize=${#__current[@]} @@ -193,7 +201,7 @@ convert_abs_rel() { __newpath=$__newpath${__absolute[__i]} done - printf "%s\n" "$__newpath" + printf -- "%s\n" "$__newpath" } @@ -335,6 +343,7 @@ shorten_persistent_dev() { find_block_device() { local _dev _majmin _find_mpt _find_mpt="$1" + if [[ $use_fstab != yes ]]; then [[ -d $_find_mpt/. ]] findmnt -e -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | { \ @@ -470,11 +479,13 @@ find_mp_fsopts() { # Echo the filesystem options for a given device. # /proc/self/mountinfo is taken as the primary source of information # and /etc/fstab is used as a fallback. +# if `use_fstab == yes`, then only `/etc/fstab` is used. +# # Example: # $ find_dev_fsopts /dev/sda2 # rw,relatime,discard,data=ordered find_dev_fsopts() { - local _find_dev _opts + local _find_dev _find_dev="$1" if ! [[ "$_find_dev" = /dev* ]]; then [[ -b "/dev/block/$_find_dev" ]] && _find_dev="/dev/block/$_find_dev" @@ -560,7 +571,7 @@ for_each_host_dev_and_slaves_all() local _dev local _ret=1 - [[ "${host_devs[@]}" ]] || return 2 + [[ "${host_devs[*]}" ]] || return 2 for _dev in "${host_devs[@]}"; do [[ -b "$_dev" ]] || continue @@ -576,7 +587,7 @@ for_each_host_dev_and_slaves() local _func="$1" local _dev - [[ "${host_devs[@]}" ]] || return 2 + [[ "${host_devs[*]}" ]] || return 2 for _dev in "${host_devs[@]}"; do [[ -b "$_dev" ]] || continue