[LEDE-DEV] [PATCH v2] ct-bugcheck: fix globbing, word splitting and formatting
Jan-Tarek Butt
tarek at ring0.de
Wed Oct 5 06:37:53 PDT 2016
Double quote to prevent globbing and word splitting.
{ cmd1; cmd2; } >> file instead of individual redirects.
simplifying syntax
Signed-off-by: Jan-Tarek Butt <tarek at 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 "greearb at 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 "greearb at 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
More information about the Lede-dev
mailing list