From 2fabaaa62dcfd31e593ca45e1374e55adae29d6b Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Mon, 22 Mar 2021 10:13:19 +0100 Subject: [PATCH] fix(base): shellcheck for modules.d/99base Also remove some functions, which are not used and broken anyway. --- modules.d/99base/.shchkdir | 0 modules.d/99base/dracut-lib.sh | 247 ++++++++++++++-------------- modules.d/99base/init.sh | 108 +++++------- modules.d/99base/initqueue.sh | 5 +- modules.d/99base/loginit.sh | 5 +- modules.d/99base/module-setup.sh | 38 +++-- modules.d/99base/parse-root-opts.sh | 1 + modules.d/99base/rdsosreport.sh | 21 ++- 8 files changed, 206 insertions(+), 219 deletions(-) create mode 100644 modules.d/99base/.shchkdir diff --git a/modules.d/99base/.shchkdir b/modules.d/99base/.shchkdir new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh index 1afdd36277..668196dfc1 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -3,9 +3,10 @@ export DRACUT_SYSTEMD export NEWROOT if [ -n "$NEWROOT" ]; then - [ -d $NEWROOT ] || mkdir -p -m 0755 $NEWROOT + [ -d "$NEWROOT" ] || mkdir -p -m 0755 "$NEWROOT" fi +# shellcheck disable=SC2153 if [ -z "$PREFIX" ]; then if ! [ -d /run/initramfs ]; then mkdir -p -m 0755 /run/initramfs/log @@ -71,8 +72,9 @@ if [ -z "$DRACUT_SYSTEMD" ]; then info() { check_quiet echo "<30>dracut: $*" > /dev/kmsg - [ "$DRACUT_QUIET" != "yes" ] \ - && echo "dracut: $*" >&2 || : + if [ "$DRACUT_QUIET" != "yes" ]; then + echo "dracut: $*" >&2 + fi } else @@ -88,14 +90,14 @@ else fi vwarn() { - while read line || [ -n "$line" ]; do - warn $line + while read -r line || [ -n "$line" ]; do + warn "$line" done } vinfo() { - while read line || [ -n "$line" ]; do - info $line + while read -r line || [ -n "$line" ]; do + info "$line" done } @@ -121,7 +123,6 @@ str_replace() { killall_proc_mountpoint() { local _pid - local _t local _killed=0 for _pid in /proc/*; do _pid=${_pid##/proc/} @@ -180,7 +181,11 @@ getarg() { -y) if dracut-getarg "$2" > /dev/null; then if [ "$_deprecated" = "1" ]; then - [ -n "$_newoption" ] && warn "Kernel command line option '$2' is deprecated, use '$_newoption' instead." || warn "Option '$2' is deprecated." + if [ -n "$_newoption" ]; then + warn "Kernel command line option '$2' is deprecated, use '$_newoption' instead." + else + warn "Option '$2' is deprecated." + fi fi echo 1 debug_on @@ -193,7 +198,11 @@ getarg() { if dracut-getarg "$2" > /dev/null; then echo 0 if [ "$_deprecated" = "1" ]; then - [ -n "$_newoption" ] && warn "Kernel command line option '$2' is deprecated, use '$_newoption=0' instead." || warn "Option '$2' is deprecated." + if [ -n "$_newoption" ]; then + warn "Kernel command line option '$2' is deprecated, use '$_newoption=0' instead." + else + warn "Option '$2' is deprecated." + fi fi debug_on return 1 @@ -207,7 +216,11 @@ getarg() { fi if dracut-getarg "$1"; then if [ "$_deprecated" = "1" ]; then - [ -n "$_newoption" ] && warn "Kernel command line option '$1' is deprecated, use '$_newoption' instead." || warn "Option '$1' is deprecated." + if [ -n "$_newoption" ]; then + warn "Kernel command line option '$1' is deprecated, use '$_newoption' instead." + else + warn "Option '$1' is deprecated." + fi fi debug_on return 0 @@ -234,12 +247,11 @@ getargbool() { local _default _default="$1" shift - _b=$(getarg "$@") - [ $? -ne 0 -a -z "$_b" ] && _b="$_default" + _b=$(getarg "$@") || _b=${_b:-"$_default"} if [ -n "$_b" ]; then - [ $_b = "0" ] && return 1 - [ $_b = "no" ] && return 1 - [ $_b = "off" ] && return 1 + [ "$_b" = "0" ] && return 1 + [ "$_b" = "no" ] && return 1 + [ "$_b" = "off" ] && return 1 fi return 0 } @@ -267,44 +279,44 @@ getargnum() { shift _max="$1" shift - _b=$(getarg "$1") - [ $? -ne 0 -a -z "$_b" ] && _b=$_default + _b=$(getarg "$1") || _b=${_b:-"$_default"} if [ -n "$_b" ]; then isdigit "$_b" && _b=$((_b)) \ - && [ $_b -ge $_min ] && [ $_b -le $_max ] && echo $_b && return + && [ $_b -ge "$_min" ] && [ $_b -le "$_max" ] && echo $_b && return fi - echo $_default + echo "$_default" } getargs() { + debug_off CMDLINE=$(getcmdline) export CMDLINE - debug_off - local _val _i _args _gfound _deprecated + local _val _i _gfound _deprecated unset _val unset _gfound _newoption="$1" - _args="$@" - set -- - for _i in $_args; do + for _i in "$@"; do if [ "$_i" = "-d" ]; then _deprecated=1 continue fi - _val="$(dracut-getargs "$_i")" - if [ $? -eq 0 ]; then + + if _val="$(dracut-getargs "$_i")"; then if [ "$_deprecated" = "1" ]; then - [ -n "$_newoption" ] && warn "Option '$_i' is deprecated, use '$_newoption' instead." || warn "Option $_i is deprecated!" + if [ -n "$_newoption" ]; then + warn "Option '$_i' is deprecated, use '$_newoption' instead." + else + warn "Option $_i is deprecated!" + fi + fi + if [ -n "$_val" ]; then + printf '%s\n' "$_val" fi _gfound=1 fi - [ -n "$_val" ] && set -- "$@" "$_val" _deprecated=0 done if [ -n "$_gfound" ]; then - if [ $# -gt 0 ]; then - printf '%s' "$*" - fi debug_on return 0 fi @@ -394,7 +406,19 @@ source_all() { _dir=$1 shift [ "$_dir" ] && [ -d "/$_dir" ] || return - for f in "/$_dir"/*.sh; do [ -e "$f" ] && . "$f" "$@"; done + for f in "/$_dir"/*.sh; do + if [ -e "$f" ]; then + # dash can't source with parameters + if [ -z "$BASH" ] && [ $# -gt 0 ]; then + [ -x "$f" ] || chmod 0755 "$f" + "$f" "$@" + else + # shellcheck disable=SC1090 + # shellcheck disable=SC2240 + . "$f" "$@" + fi + fi + done } hookdir=/lib/dracut/hooks @@ -409,8 +433,9 @@ source_hook() { check_finished() { local f - for f in $hookdir/initqueue/finished/*.sh; do + for f in "$hookdir"/initqueue/finished/*.sh; do [ "$f" = "$hookdir/initqueue/finished/*.sh" ] && return 0 + # shellcheck disable=SC1090 { [ -e "$f" ] && (. "$f"); } || return 1 done return 0 @@ -419,6 +444,7 @@ check_finished() { source_conf() { local f [ "$1" ] && [ -d "/$1" ] || return + # shellcheck disable=SC1090 for f in "/$1"/*.conf; do [ -e "$f" ] && . "$f"; done } @@ -434,7 +460,7 @@ die() { } >> $hookdir/emergency/01-die.sh [ -d /run/initramfs ] || mkdir -p -- /run/initramfs - > /run/initramfs/.die + : > /run/initramfs/.die if getargbool 0 "rd.shell"; then emergency_shell @@ -456,7 +482,7 @@ check_quiet() { getargbool 0 rd.debug -d -y rdinitdebug && DRACUT_QUIET="no" getarg quiet || DRACUT_QUIET="yes" a=$(getarg loglevel=) - [ -n "$a" ] && [ $a -ge 28 ] && DRACUT_QUIET="yes" + [ -n "$a" ] && [ "$a" -ge 28 ] && DRACUT_QUIET="yes" export DRACUT_QUIET fi } @@ -474,52 +500,43 @@ check_occurances() { count=$((count + 1)) done - [ $count -eq $expected ] + [ $count -eq "$expected" ] } incol2() { debug_off - local dummy check + local check local file="$1" local str="$2" [ -z "$file" ] && return 1 [ -z "$str" ] && return 1 - while read dummy check restofline || [ -n "$check" ]; do + while read -r _ check _ || [ -n "$check" ]; do if [ "$check" = "$str" ]; then debug_on return 0 fi - done < $file + done < "$file" debug_on return 1 } udevsettle() { - [ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version) - - if [ $UDEVVERSION -ge 143 ]; then - udevadm settle --exit-if-exists=$hookdir/initqueue/work $settle_exit_if_exists - else - udevadm settle --timeout=30 - fi + # shellcheck disable=SC2086 + udevadm settle --exit-if-exists=$hookdir/initqueue/work $settle_exit_if_exists } udevproperty() { - [ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version) - - if [ $UDEVVERSION -ge 143 ]; then - for i in "$@"; do udevadm control --property=$i; done - else - for i in "$@"; do udevadm control --env=$i; done - fi + for i in "$@"; do + udevadm control --property="$i" + done } find_mount() { - local dev mnt etc wanted_dev - wanted_dev="$(readlink -e -q $1)" - while read dev mnt etc || [ -n "$dev" ]; do + local dev wanted_dev + wanted_dev="$(readlink -e -q "$1")" + while read -r dev _ || [ -n "$dev" ]; do [ "$dev" = "$wanted_dev" ] && echo "$dev" && return 0 done < /proc/mounts return 1 @@ -538,7 +555,7 @@ else return 1 fi - while read a m a || [ -n "$m" ]; do + while read -r _ m _ || [ -n "$m" ]; do [ "$m" = "$1" ] && return 0 done < /proc/mounts return 1 @@ -644,10 +661,11 @@ mkuniqdir() { # copytree SRC DEST copytree() { local src="$1" dest="$2" - mkdir -p "$dest" - dest=$(readlink -e -q "$dest") + [ -d "$src" ] || return 1 + mkdir -p "$dest" || return 1 + dest=$(readlink -e -q "$dest") || return 1 ( - cd "$src" + cd "$src" || exit 1 cp -af . -t "$dest" ) } @@ -671,7 +689,7 @@ copytree() { # foreach_uuid_until "mount -U \$___ /mnt; echo OK; umount /mnt" \ # "01234 f512 a235567f-12a3-c123-a1b1-01234567abcb" foreach_uuid_until() ( - cd /dev/disk/by-uuid + cd /dev/disk/by-uuid || return 1 [ "$1" = -p ] && local prefix="$2" && shift 2 local cmd="$1" @@ -684,10 +702,11 @@ foreach_uuid_until() ( [ -n "${cmd}" ] || return 1 for uuid in ${uuids_list:-*}; do - for full_uuid in ${uuid}*; do + for full_uuid in "${uuid}"*; do [ -e "${full_uuid}" ] || continue + # shellcheck disable=SC2034 ___="${prefix}${full_uuid}" - eval ${cmd} && return 0 + eval "${cmd}" && return 0 done done @@ -715,6 +734,7 @@ devnames() { case "$dev" in UUID=*) + # shellcheck disable=SC2016 dev="$(foreach_uuid_until '! blkid -U $___' "${dev#UUID=}")" \ && return 255 [ -z "$dev" ] && return 255 @@ -781,10 +801,11 @@ inst_hook() { _exe=$1 shift - [ -x "$_exe" ] || _exe=$(command -v $_exe) + [ -x "$_exe" ] || _exe=$(command -v "$_exe") if [ -n "$onetime" ]; then { + # shellcheck disable=SC2016 echo '[ -e "$_job" ] && rm -f -- "$_job"' echo "$_exe $*" } > "/tmp/$$-${_job}.sh" @@ -801,41 +822,12 @@ inst_hook() { # which executes