[wallpapoz/f16] Add more fixes

Mamoru Tasaka mtasaka at fedoraproject.org
Mon Nov 28 10:10:23 UTC 2011


commit 0991688a813f8885b4a7b7dcad92417006f91344
Author: TASAKA Mamoru <mtasaka at localhost.localdomain>
Date:   Mon Nov 28 19:10:20 2011 +0900

    Add more fixes

 daemon_wallpapoz-wrapper |   73 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 63 insertions(+), 10 deletions(-)
---
diff --git a/daemon_wallpapoz-wrapper b/daemon_wallpapoz-wrapper
index 89ea42d..bb0d5df 100644
--- a/daemon_wallpapoz-wrapper
+++ b/daemon_wallpapoz-wrapper
@@ -4,25 +4,78 @@ which xprop &>/dev/null || exit 1
 sleep 2
 
 TRIAL=0
+FOUND=0
 PROGNAME=$0
 while true ; do
-	RESULT=$(xprop -root _NET_DESKTOP_GEOMETRY 2>/dev/null)
+	if test $TRIAL -ge 6 ; then
+		echo "$PROGNAME: not lauching daemon_wallpapoz"
+		exit 1
+	fi
+
+	COMMAND="xprop -root _NET_NUMBER_OF_DESKTOPS 2>/dev/null"
+	RESULT=$(eval "$COMMAND")
+	RESULT=${RESULT:36}
+	if ( (test -z "$RESULT" ) || ! (echo "$RESULT" | grep -q "^[0-9]" ) ) ; then
+		# xprop failed
+		echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..."
+		TRIAL=$((TRIAL+1))
+		sleep 3
+		continue
+	fi
+
+	COMMAND="xprop -root _NET_DESKTOP_GEOMETRY 2>/dev/null"
+	RESULT=$(eval "$COMMAND")
 	RESULT=${RESULT:34}
 	WIDTH=$(echo $RESULT | sed -e 's|,.*$||')
 	HEIGHT=$(echo $RESULT | sed -e 's|^.*,||' | sed -e 's|^[ \t][ \t]*||')
-	if [[ ( -z $WIDTH ) || ( -z $WIDTH ) ]] ; then
+	if ( (test -z "$WIDTH" ) || ! (echo "$WIDTH" | grep -q "^[0-9]" ) ) ; then
 		# xprop failed
+		echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..."
 		TRIAL=$((TRIAL+1))
-		echo "$PROGNAME: xprop returned unexpected result for $TRIAL times"
-		if test $TRIAL -ge 4 ; then
-			echo "$PROGNAME: not lauching daemon_wallpapoz"
-			exit 1
-		fi
 		sleep 3
-	else
-		# xprop succeeded
-		break
+		continue
 	fi
+	if ( (test -z "$HEIGHT" ) || ! (echo "$HEIGHT" | grep -q "^[0-9]" ) ) ; then
+		# xprop failed
+		echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..."
+		TRIAL=$((TRIAL+1))
+		sleep 3
+		continue
+	fi
+
+	COMMAND="xprop -root _NET_DESKTOP_VIEWPORT 2>/dev/null"
+	RESULT=$(eval "$COMMAND")
+	RESULT=${RESULT:34}
+	WIDTH=$(echo $RESULT | sed -e 's|,.*$||')
+	HEIGHT=$(echo $RESULT | sed -e 's|^.*,||' | sed -e 's|^[ \t][ \t]*||')
+	if ( (test -z "$WIDTH" ) || ! (echo "$WIDTH" | grep -q "^[0-9]" ) ) ; then
+		# xprop failed
+		echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..."
+		TRIAL=$((TRIAL+1))
+		sleep 3
+		continue
+	fi
+	if ( (test -z "$HEIGHT" ) || ! (echo "$HEIGHT" | grep -q "^[0-9]" ) ) ; then
+		# xprop failed
+		echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..."
+		TRIAL=$((TRIAL+1))
+		sleep 3
+		continue
+	fi
+
+	COMMAND="xprop -root _NET_CURRENT_DESKTOP 2>/dev/null"
+	RESULT=$(eval "$COMMAND")
+	RESULT=${RESULT:33}
+	if ( (test -z "$RESULT" ) || ! (echo "$RESULT" | grep -q "^[0-9]" ) ) ; then
+		# xprop failed
+		echo "daemon_wallpapoz: $COMMAND failed at startup, retrying after 3 seconds..."
+		TRIAL=$((TRIAL+1))
+		sleep 3
+		continue
+	fi
+
+	# succeeded
+	break
 done
 
 exec /usr/libexec/daemon_wallpapoz "$@"


More information about the scm-commits mailing list