From ee9d2c5eefcd51cfdd6f377cda219aa0c4282074 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 15 Mar 2023 14:39:36 +0100 Subject: [debug-report-bwlp] Add --message option for non-interactive use --- .../data/opt/openslx/bin/debug_report | 55 +++++++++++++++++----- 1 file changed, 43 insertions(+), 12 deletions(-) (limited to 'core/modules/debug-report-bwlp') diff --git a/core/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report b/core/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report index bda3f351..76500c29 100755 --- a/core/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report +++ b/core/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report @@ -19,14 +19,33 @@ URLS=" end " +localReport=false +errorDesc= + if [ "$UID" != "0" ]; then echo "Debug Reports können nur von root versendet werden" >&2 exit 1 fi -if [ "$1" = "--local" ]; then - localReport=true -else +while [ $# -gt 0 ]; do + case "$1" in + --local) + localReport=true + ;; + --message) + errorDesc="$2" + shift + ;; + esac + shift +done + +if [ -z "$errorDesc" ] && ! [ -t 0 ]; then + echo "Keine Fehlerbeschreibung angegeben (--message '')" + exit 1 +fi + +if ! $localReport; then for URL in $URLS; do if [ "$URL" = "end" ]; then echo "Kann den Debug-Report-Server in Freiburg nicht erreichen. :-(" >&2 @@ -49,13 +68,17 @@ if ! cd /tmp/debug-report; then exit 1 fi -cat > err-desc < err-desc +else + cat > err-desc <<-HEREEND -# Bitte hier kurz eine passende Fehlerbeschreibung eingeben, anschließend -# Strg+O, ENTER, Strg+X, ENTER drücken. -HEREEND + # Bitte hier kurz eine passende Fehlerbeschreibung eingeben, anschließend + # Strg+O, ENTER, Strg+X, ENTER drücken. + HEREEND -nano -w err-desc + nano -w err-desc +fi if ! grep -vqE '(^$)|(^# )' err-desc; then echo "Fehlerberichterstattung aufgrund leerer Beschreibung abgebrochen." @@ -91,9 +114,13 @@ done echo -n "." -FILES=$(find /tmp/vmware* /tmp/virt /tmp/vmchooser* -type f \( -name "*.log" -o -name "*.conf" -o -name "*.xml" -o -name "vmx" \) 2> /dev/null) -if [ -n "$FILES" ]; then - tar ckf static/vm-related.tar $FILES +mapfile -t -d '' FILES < <( find /tmp/vmware* /tmp/virt /tmp/vmchooser* \ + -type f \ + \( -name "*.log" -o -name "*.conf" -o -name "*.xml" -o -name "vmx" \) \ + -print0 2> /dev/null ) + +if (( ${#FILES[@]} > 0 )); then + tar ckf static/vm-related.tar "${FILES[@]}" fi echo -n "." @@ -155,7 +182,11 @@ find generated/ -type f -name "*-err" -size 0 -delete > /dev/null 2>/dev/null echo "..fertig!" -cd /tmp +if ! cd /tmp; then + echo 'cd /tmp failed!?' + exit 1 +fi + rm -f -- error-report.tar.gz if [ "$localReport" = "true" ]; then -- cgit v1.2.3-55-g7522