initial commit
This commit is contained in:
62
package/swupdate-scripts/files/swupdate-progress.sh
Executable file
62
package/swupdate-scripts/files/swupdate-progress.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/sh
|
||||
# Monitor progress of SWUpdate and report it
|
||||
|
||||
TMPDIR="/tmp"
|
||||
FIFO="$TMPDIR/swupdate-progress"
|
||||
|
||||
# Create FIFO if it doesn't exist
|
||||
if [ ! -e "$FIFO" ]; then
|
||||
mkfifo "$FIFO"
|
||||
fi
|
||||
|
||||
# If no arguments, print usage
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <command>"
|
||||
echo "Commands:"
|
||||
echo " monitor - Monitor progress of an update"
|
||||
echo " status - Show current status"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
monitor)
|
||||
# Start monitoring FIFO
|
||||
while true; do
|
||||
if read line <"$FIFO"; then
|
||||
echo "$line"
|
||||
# Extract progress percentage
|
||||
PROGRESS=$(echo "$line" | grep -o '[0-9]*%' | grep -o '[0-9]*')
|
||||
if [ -n "$PROGRESS" ] && [ "$PROGRESS" = "100" ]; then
|
||||
echo "Update complete!"
|
||||
break
|
||||
fi
|
||||
# Check for error messages
|
||||
if echo "$line" | grep -q "FAILURE"; then
|
||||
echo "Update failed!"
|
||||
break
|
||||
fi
|
||||
else
|
||||
# FIFO closed
|
||||
echo "Connection closed"
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
status)
|
||||
# Show which partition is active
|
||||
ACTIVE_PART=$(fw_printenv -n active_part 2>/dev/null || echo "Unknown")
|
||||
echo "Active partition: $ACTIVE_PART"
|
||||
# Show update status if available
|
||||
if [ -e /tmp/swupdate.done ]; then
|
||||
echo "Last update: Successful"
|
||||
else
|
||||
echo "No recent update"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unknown command: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user