From: Ben Crocker <[email protected]>

• SC2006: Use $(...) notation instead of legacy backticked `...`.
• SC2034: <variable> appears unused. Verify use (or export if used 
externally).
• SC2045: Iterating over ls output is fragile. Use globs.
• SC2046: Quote this to prevent word splitting.
• SC2086: Double quote to prevent globbing and word splitting.
• SC2231: Quote expansions in this for-loop glob to prevent wordsplitting, 
e.g. "$dir"/*.txt .

Ignore:
• SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

Signed-off-by: Ben Crocker <[email protected]>
---
 redhat/configs/process_configs.sh | 69 ++++++++++++++++---------------
 1 file changed, 35 insertions(+), 34 deletions(-)

diff --git a/redhat/configs/process_configs.sh 
b/redhat/configs/process_configs.sh
index 14773fef2410..86d8f805418c 100755
--- a/redhat/configs/process_configs.sh
+++ b/redhat/configs/process_configs.sh
@@ -3,6 +3,8 @@
 # This script takes the merged config files and processes them through 
oldconfig
 # and listnewconfig
 #
+# Globally disable suggestion of appending '|| exit' or '|| return' to 
cd/pushd/popd commands
+# shellcheck disable=SC2164
 
 usage()
 {
@@ -30,11 +32,11 @@ switch_to_toplevel()
        path="$(pwd)"
        while test -n "$path"
        do
-               test -e $path/MAINTAINERS && \
-                       test -d $path/drivers && \
+               test -e "$path"/MAINTAINERS && \
+                       test -d "$path"/drivers && \
                        break
 
-               path="$(dirname $path)"
+               path="$(dirname "$path")"
        done
 
        test -n "$path"  || die "Can't find toplevel"
@@ -65,7 +67,7 @@ checkoptions()
                                         print "Found "a[1]"="a[2]" after 
generation, had " a[1]"="configs[a[1]]" in Source tree";
                        }
                }
-       ' $1 $2 > .mismatches
+       ' "$1" "$2" > .mismatches
 
        if test -s .mismatches
        then
@@ -84,7 +86,7 @@ parsenewconfigs()
        # and puts it into CONFIG_FOO files. Using the output of
        # listnewconfig is much easier to ensure we get the default
        # output.
-        /usr/bin/awk -v BASE=$tmpdir '
+        /usr/bin/awk -v BASE="$tmpdir" '
                 /is not set/ {
                         split ($0, a, "#");
                         split(a[2], b);
@@ -109,7 +111,7 @@ parsenewconfigs()
        # each CONFIG_FOO file. Because of how awk works
        # there's a lot of moving files around and catting to
        # get what we need.
-        /usr/bin/awk -v BASE=$tmpdir '
+        /usr/bin/awk -v BASE="$tmpdir" '
                 BEGIN { inpatch=0;
                        outfile="none";
                         symbol="none"; }
@@ -141,28 +143,28 @@ parsenewconfigs()
 
         ' .helpnewconfig
 
-       pushd $tmpdir &> /dev/null
+       pushd "$tmpdir" &> /dev/null
        rm fake_*
        popd &> /dev/null
-       for f in `ls $tmpdir`; do
-               [[ -e "$tmpdir/$f" ]] || break
-               cp $tmpdir/$f $SCRIPT_DIR/pending"$FLAVOR"/generic/
+       for f in "$tmpdir"/*; do
+               [[ -e "$f" ]] || break
+               cp "$f" "$SCRIPT_DIR"/pending"$FLAVOR"/generic/
        done
 
-       rm -rf $tmpdir
+       rm -rf "$tmpdir"
 }
 
 function commit_new_configs()
 {
        # assume we are in $source_tree/configs, need to get to top level
-       pushd $(switch_to_toplevel) &>/dev/null
+       pushd "$(switch_to_toplevel)" &>/dev/null
 
-       for cfg in $SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}*.config
+       for cfg in 
"$SCRIPT_DIR"/"${PACKAGE_NAME}""${KVERREL}""${SUBARCH}"*.config
        do
-               arch=$(head -1 $cfg | cut -b 3-)
+               arch=$(head -1 "$cfg" | cut -b 3-)
                cfgtmp="${cfg}.tmp"
                cfgorig="${cfg}.orig"
-               cat $cfg > $cfgorig
+               cat "$cfg" > "$cfgorig"
 
                if [ "$arch" = "EMPTY" ]
                then
@@ -171,32 +173,32 @@ function commit_new_configs()
                fi
                echo -n "Checking for new configs in $cfg ... "
 
-               make ARCH=$arch KCONFIG_CONFIG=$cfgorig listnewconfig >& 
.listnewconfig
+               make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& 
.listnewconfig
                grep -E 'CONFIG_' .listnewconfig > .newoptions
                if test -s .newoptions
                then
-                       make ARCH=$arch KCONFIG_CONFIG=$cfgorig helpnewconfig 
>& .helpnewconfig
+                       make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" 
helpnewconfig >& .helpnewconfig
                        parsenewconfigs
                fi
                rm .newoptions
                echo "done"
        done
 
-       git add $SCRIPT_DIR/pending"$FLAVOR"
+       git add "$SCRIPT_DIR"/pending"$FLAVOR"
        git commit -m "[redhat] AUTOMATIC: New configs"
 }
 
 function process_configs()
 {
        # assume we are in $source_tree/configs, need to get to top level
-       pushd $(switch_to_toplevel) &>/dev/null
+       pushd "$(switch_to_toplevel)" &>/dev/null
 
-       for cfg in $SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}*.config
+       for cfg in 
"$SCRIPT_DIR"/"${PACKAGE_NAME}""${KVERREL}""${SUBARCH}"*.config
        do
-               arch=$(head -1 $cfg | cut -b 3-)
+               arch=$(head -1 "$cfg" | cut -b 3-)
                cfgtmp="${cfg}.tmp"
                cfgorig="${cfg}.orig"
-               cat $cfg > $cfgorig
+               cat "$cfg" > "$cfgorig"
 
                if [ "$arch" = "EMPTY" ]
                then
@@ -205,7 +207,7 @@ function process_configs()
                fi
                echo -n "Processing $cfg ... "
 
-               make ARCH=$arch KCONFIG_CONFIG=$cfgorig listnewconfig >& 
.listnewconfig
+               make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& 
.listnewconfig
                grep -E 'CONFIG_' .listnewconfig > .newoptions
                if test -n "$NEWOPTIONS" && test -s .newoptions
                then
@@ -230,21 +232,21 @@ function process_configs()
 
                rm .listnewconfig
 
-               make ARCH=$arch KCONFIG_CONFIG=$cfgorig olddefconfig > 
/dev/null || exit 1
-               echo "# $arch" > ${cfgtmp}
-               cat "${cfgorig}" >> ${cfgtmp}
+               make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" olddefconfig > 
/dev/null || exit 1
+               echo "# $arch" > "${cfgtmp}"
+               cat "${cfgorig}" >> "${cfgtmp}"
                if test -n "$CHECKOPTIONS"
                then
-                       checkoptions $cfg $cfgtmp
+                       checkoptions "$cfg" "$cfgtmp"
                fi
                # if test run, don't overwrite original
                if test -n "$TESTRUN"
                then
-                       rm ${cfgtmp}
+                       rm "${cfgtmp}"
                else
-                       mv ${cfgtmp} ${cfg}
+                       mv "${cfgtmp}" "${cfg}"
                fi
-               rm ${cfgorig}
+               rm "${cfgorig}"
                echo "done"
        done
        rm "$SCRIPT_DIR"/*.config*.old
@@ -302,9 +304,8 @@ PACKAGE_NAME="${1:-kernel}" # defines the package name used
 KVERREL="$(test -n "$2" && echo "-$2" || echo "")"
 SUBARCH="$(test -n "$3" && echo "-$3" || echo "")"
 FLAVOR="$(test -n "$4" && echo "-$4" || echo "-common")"
-SCRIPT="$(readlink -f $0)"
-OUTPUT_DIR="$PWD"
-SCRIPT_DIR="$(dirname $SCRIPT)"
+SCRIPT="$(readlink -f "$0")"
+SCRIPT_DIR="$(dirname "$SCRIPT")"
 
 # Most RHEL options are options we want in Fedora so RHEL pending settings head
 # to common/
@@ -314,7 +315,7 @@ then
 fi
 
 # to handle this script being a symlink
-cd $SCRIPT_DIR
+cd "$SCRIPT_DIR"
 
 if test -n "$COMMITNEWCONFIGS"; then
        commit_new_configs
-- 
GitLab
_______________________________________________
kernel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]

Reply via email to