Double quote to prevent globbing and word splitting.
{ cmd1; cmd2; } >> file instead of individual redirects.
simplifying syntax

Signed-off-by: Jan-Tarek Butt <ta...@ring0.de>
---
 package/utils/ct-bugcheck/src/bugcheck.sh | 177 ++++++++++++++----------------
 1 file changed, 83 insertions(+), 94 deletions(-)

diff --git a/package/utils/ct-bugcheck/src/bugcheck.sh 
b/package/utils/ct-bugcheck/src/bugcheck.sh
index 85f70c5..1737ed5 100755
--- a/package/utils/ct-bugcheck/src/bugcheck.sh
+++ b/package/utils/ct-bugcheck/src/bugcheck.sh
@@ -9,107 +9,96 @@ FOUND_BUG=0
 
 # set -x
 
-bugcheck_generic()
-{
-    echo "LEDE crashlog report" > $CRASHDIR/info.txt
-    date >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "uname" >> $CRASHDIR/info.txt
-    uname -a >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "os-release" >> $CRASHDIR/info.txt
-    cat /etc/os-release >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "os-release" >> $CRASHDIR/info.txt
-    cat /etc/os-release >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "dmesg output" >> $CRASHDIR/info.txt
-    dmesg >> $CRASHDIR/info.txt
-    if [ -x /usr/bin/lspci ]
-       then
-       echo >> $CRASHDIR/info.txt
-       echo "lspci" >> $CRASHDIR/info.txt
-       lspci >> $CRASHDIR/info.txt
-    fi
-    echo >> $CRASHDIR/info.txt
-    echo "cpuinfo" >> $CRASHDIR/info.txt
-    cat /proc/cpuinfo >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "meminfo" >> $CRASHDIR/info.txt
-    cat /proc/cpuinfo >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "cmdline" >> $CRASHDIR/info.txt
-    cat /proc/cmdline >> $CRASHDIR/info.txt
-    echo >> $CRASHDIR/info.txt
-    echo "lsmod" >> $CRASHDIR/info.txt
-    lsmod >> $CRASHDIR/info.txt
+bugcheck_generic() {
+       {
+               echo "LEDE crashlog report"
+               date
+               echo
+               echo "uname"
+               uname -a
+               echo
+               echo "os-release"
+               cat /etc/os-release
+               echo
+               echo "os-release"
+               cat /etc/os-release
+               echo
+               echo "dmesg output"
+               dmesg
+       } > $CRASHDIR/info.txt
+       [ -x /usr/bin/lspci ] && {
+               echo
+               echo "lspci"
+               lspci
+       } >> $CRASHDIR/info.txt
+       {
+               echo
+               echo "cpuinfo"
+               cat /proc/cpuinfo
+               echo
+               echo "meminfo"
+               cat /proc/cpuinfo
+               echo
+               echo "cmdline"
+               cat /proc/cmdline
+               echo
+               echo "lsmod"
+               lsmod
+       } >> $CRASHDIR/info.txt
 }
 
-roll_crashes()
-{
-    # Roll any existing crashes
-    if [ -d $CRASHDIR ]
-       then
-       if [ -d $CRASHDIR.1 ]
-           then
-           rm -fr $CRASHDIR.1
-       fi
-       mv $CRASHDIR $CRASHDIR.1
-    fi
+roll_crashes() {
+       # Roll any existing crashes
+       [ -d $CRASHDIR.1 ] && rm -fr $CRASHDIR.1
+       [ -d $CRASHDIR ] && mv $CRASHDIR $CRASHDIR.1
 
-    # Prepare location
-    mkdir -p $CRASHDIR
+       # Prepare location
+       mkdir -p $CRASHDIR
 }
 
 # ath10k, check debugfs entries.
-for i in /sys/kernel/debug/ieee80211/*/ath10k/fw_crash_dump
-do
-  #echo "Checking $i"
-  if cat $i > $TMPLOC/ath10k_crash.bin 2>&1
-      then
-      FOUND_BUG=1
-
-      #echo "Found ath10k crash data in $i"
-      roll_crashes
-
-      ADIR=${i/fw_crash_dump/}
-
-      CTFW=0
-      if grep -- -ct- $TMPLOC/ath10k_crash.bin > /dev/null 2>&1
-         then
-         CTFW=1
-      fi
-
-      echo "Send bug reports to:" > $CRASHDIR/report_to.txt
-      if [ -f $ADIR/ct_special -o $CTFW == "1" ]
-         then
-         # Looks like this is CT firmware or driver...
-         echo "gree...@candelatech.com" >> $CRASHDIR/report_to.txt
-         echo "and/or report or check for duplicates here:" >> 
$CRASHDIR/report_to.txt
-         echo "https://github.com/greearb/ath10k-ct/issues"; >> 
$CRASHDIR/report_to.txt
-      else
-         # Not sure who would want these bug reports for upstream...
-         echo "https://www.lede-project.org/"; >> $CRASHDIR/report_to.txt
-      fi
-      echo >> $CRASHDIR/report_to.txt
-      echo "Please attach all files in this directory to bug reports." >> 
$CRASHDIR/report_to.txt
-
-      mv $TMPLOC/ath10k_crash.bin $CRASHDIR
-
-      # Add any more ath10k specific stuff here.
-
-      # And call generic bug reporting logic
-      bugcheck_generic
-  fi
+for i in /sys/kernel/debug/ieee80211/*/ath10k/fw_crash_dump; do
+       #echo "Checking $i"
+       cat "$i" > $TMPLOC/ath10k_crash.bin 2>&1 || continue
+       FOUND_BUG=1
+
+       #echo "Found ath10k crash data in $i"
+       roll_crashes
+
+       ADIR=${i/fw_crash_dump/}
+
+       CTFW=0
+       grep -q -- -ct- $TMPLOC/ath10k_crash.bin && CTFW=1
+
+       echo "Send bug reports to:" > $CRASHDIR/report_to.txt
+       if [ -f "$ADIR"/ct_special ] || [ $CTFW = "1" ]; then
+               # Looks like this is CT firmware or driver...
+               {
+                       echo "gree...@candelatech.com"
+                       echo "and/or report or check for duplicates here:"
+                       echo "https://github.com/greearb/ath10k-ct/issues";
+               } >> $CRASHDIR/report_to.txt
+       else
+               # Not sure who would want these bug reports for upstream...
+               echo "https://www.lede-project.org/"; >> $CRASHDIR/report_to.txt
+       fi
+       echo >> $CRASHDIR/report_to.txt
+       echo "Please attach all files in this directory to bug reports." >> 
$CRASHDIR/report_to.txt
+
+       mv $TMPLOC/ath10k_crash.bin $CRASHDIR
+
+       # Add any more ath10k specific stuff here.
+
+       # And call generic bug reporting logic
+       bugcheck_generic
 done
 
-if [ $FOUND_BUG == "1" ]
-    then
-    # Notify LUCI somehow?
-    echo "bugcheck.sh found an issue to be reported" > /dev/kmsg
-    echo "See $CRASHDIR for details on how to report this" > /dev/kmsg
-    # Let calling code know something was wrong.
-    exit 1
-fi
+[ "$FOUND_BUG" -eq "1" ] && {
+       # Notify LUCI somehow?
+       echo "bugcheck.sh found an issue to be reported" > /dev/kmsg
+       echo "See $CRASHDIR for details on how to report this" > /dev/kmsg
+       # Let calling code know something was wrong.
+       exit 1
+}
 
 exit 0
-- 
2.10.0


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to