]> git.ozlabs.org Git - next-scripts/commitdiff
do_merge: shellcheck cleanups
authorStephen Rothwell <sfr@canb.auug.org.au>
Fri, 26 Jul 2019 01:50:27 +0000 (11:50 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 26 Jul 2019 01:50:27 +0000 (11:50 +1000)
do_merge

index 1c91fe5618a6fe01bdd872230b424bb0c5f0194e..ab12c59b39c4995c957ef499b54bfb07ec7e9687 100755 (executable)
--- a/do_merge
+++ b/do_merge
@@ -18,8 +18,8 @@ while getopts 'ns:' opt; do
 done
 shift $((OPTIND - 1))
 
-tool_dir=$(dirname "$0")
-. "$tool_dir/common.sh"
+# shellcheck source=common.sh
+source "$(dirname "$0")/common.sh"
 
 log()
 {
@@ -65,12 +65,12 @@ for h in $heads; do
        hlog=$(git log -1 --oneline "${h/\/*://}") 2>/dev/null
        old_head=$(git rev-parse HEAD)
        [ -f "../pre-merge/$tree" ] && {
-               for p in $(cat "../pre-merge/$tree"); do
-                       "$bin_dir/do_patch" -n "$p" || {
+               while read -r p <&7; do
+                       if ! "$bin_dir/do_patch" -n "$p"; then
                                linux-next-notify "premerge patch failed"
                                bash -i || exit
-                       }
-               done
+                       fi 7<&-
+               done 7<"../pre-merge/$tree"
        }
        log Merging "$h" "($hlog)"
        execute git merge "$h" || {
@@ -80,7 +80,7 @@ for h in $heads; do
 
                check_unmerged_files "$tree"
 
-               git diff 2>&1 | egrep -q '<<<<<|^\*' && {
+               git diff 2>&1 | grep -E -q '<<<<<|^\*' && {
                        linux-next-notify "new conflict found merging $tree"
                        if [ -f "../merge-fixes/$tree" ]; then
                                echo "Merge fixes exist for this tree:"
@@ -97,27 +97,27 @@ for h in $heads; do
 #              }
        }
        [ -f "../merge-fixes/$tree" ] && {
-               for p in $(cat "../merge-fixes/$tree"); do
-                       "$bin_dir/merge_fix" -n "$p" || {
+               while read -r p <&7; do
+                       if ! "$bin_dir/merge_fix" -n "$p"; then
                                linux-next-notify "merge fix failed for $tree"
                                bash -i || exit
-                       }
-               done
+                       fi 7<&-
+               done 7<"../merge-fixes/$tree"
        }
-       tab="\t"
-       [ $(echo "$tree" | wc -c) -le 8 ] && tab="\t\t"
-       printf "%s$tab%s\n" $tree $(git rev-parse "${h/\/*://}^{}") >> $SHA1_FILE
+       tab=$'\t'
+       [ "${#tree}" -le 8 ] && tab=$'\t\t'
+       printf '%s%s%s\n' "$tree" "$tab" "$(git rev-parse "${h/\/*://}^{}")" >> "$SHA1_FILE"
        $no_build && continue
        $need_build || {
                # See if we need to build after merging this tree
                new_head=$(git rev-parse HEAD)
                [ "$old_head" = "$new_head" ] ||
-                       [ "$(git diff ${old_head}.. | wc -c)" -eq 0 ] ||
+                       [ "$(git diff "$old_head".. | wc -c)" -eq 0 ] ||
                                need_build=true
        }
        $need_build ||
                continue
-       do_build=$(awk -F '\t' '/^[^#]/ && $3=="'$tree'" { print $6; }' "$CTRL_FILE")
+       do_build=$(awk -F '\t' '/^[^#]/ && $3=="'"$tree"'" { print $6; }' "$CTRL_FILE")
        [ "$do_build" = "yes" ] ||
                continue
        git push -f "${build_host}${build_host:+:}${build_dir}" master:refs/heads/next || {