summaryrefslogtreecommitdiffstats
path: root/core/modules/debug-report-bwlp
diff options
context:
space:
mode:
authorSimon Rettberg2023-03-15 14:39:36 +0100
committerSimon Rettberg2023-03-15 14:39:36 +0100
commitee9d2c5eefcd51cfdd6f377cda219aa0c4282074 (patch)
treeb3d7222f893ff0928c976dcd736f83490b443023 /core/modules/debug-report-bwlp
parentUse distro meson (diff)
downloadmltk-ee9d2c5eefcd51cfdd6f377cda219aa0c4282074.tar.gz
mltk-ee9d2c5eefcd51cfdd6f377cda219aa0c4282074.tar.xz
mltk-ee9d2c5eefcd51cfdd6f377cda219aa0c4282074.zip
[debug-report-bwlp] Add --message option for non-interactive use
Diffstat (limited to 'core/modules/debug-report-bwlp')
-rwxr-xr-xcore/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report55
1 files changed, 43 insertions, 12 deletions
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 '<ein text>')"
+ 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 <<HEREEND
+if [ -n "$errorDesc" ]; then
+ printf "%s" "$errorDesc" > 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