mirror of
https://github.com/AlbrechtL/openwrt-docker.git
synced 2026-10-15 16:01:25 +00:00
Improved error handling
This commit is contained in:
+8
-1
@@ -78,18 +78,25 @@ while getopts ":hvrqsSVRc" option; do
|
||||
[ -z "$PID" ] && exit 1
|
||||
while true; do # Wait for command exit
|
||||
RETURN_JSON=`echo '{"execute": "guest-exec-status", "arguments": { "pid": '${PID}'}}' | nc -w 1 -U /run/qga.sock`
|
||||
#echo >&2 "RETURN_JSON: $RETURN_JSON"
|
||||
export EXITCODE=`echo $RETURN_JSON | sed -n 's/.*"exitcode": \([0-9]*\).*/\1/p'`
|
||||
export OUT_DATA=`echo $RETURN_JSON | sed -n 's/.*"out-data": "\([^"]*\).*/\1/p' | base64 -d`
|
||||
export ERR_DATA=`echo $RETURN_JSON | sed -n 's/.*"err-data": "\([^"]*\).*/\1/p' | base64 -d`
|
||||
export EXITED=`echo $RETURN_JSON | sed -n 's/.*"exited": \(true\|false\).*/\1/p'`
|
||||
if [ "$EXITED" = "true" ]; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
echo "$OUT_DATA" # Return stdout
|
||||
if [ -n "$OUT_DATA" ]; then
|
||||
echo "$OUT_DATA" # Return stdout
|
||||
fi
|
||||
if [ -z "$EXITCODE" ]; then # Exit code handling
|
||||
exit 1
|
||||
else
|
||||
if [ $EXITCODE != 0 ]; then
|
||||
echo >&2 "Command error \"$ERR_DATA\" (exit code \"$EXITCODE\")"
|
||||
fi
|
||||
exit "$EXITCODE"
|
||||
fi;;
|
||||
\?) # Invalid option
|
||||
|
||||
Reference in New Issue
Block a user