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