[oe-commits] Richard Tollerton : udev-cache: refactor conditionals and error handling

git at git.openembedded.org git at git.openembedded.org
Fri Dec 19 18:08:44 UTC 2014


Module: openembedded-core.git
Branch: master
Commit: a1357f3c78e46cd4297fefab56acf87342967132
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=a1357f3c78e46cd4297fefab56acf87342967132

Author: Richard Tollerton <rich.tollerton at ni.com>
Date:   Tue Jan 21 13:46:46 2014 -0600

udev-cache: refactor conditionals and error handling

Most of /etc/init.d/udev-cache is in a conditional block which can be
replaced by a `[ ... ] || exit 0` to reduce nesting.

This also provides an opportunity to add some additional messages
when VERBOSE is set.

Capture and report errors encountered in the cache generation process,
using set -e and trap EXIT. These errors were previously being ignored.

Signed-off-by: Richard Tollerton <rich.tollerton at ni.com>

---

 meta/recipes-core/udev/udev/udev-cache | 35 +++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/meta/recipes-core/udev/udev/udev-cache b/meta/recipes-core/udev/udev/udev-cache
index 3c18061..895b197 100644
--- a/meta/recipes-core/udev/udev/udev-cache
+++ b/meta/recipes-core/udev/udev/udev-cache
@@ -42,19 +42,28 @@ if [ "$ROOTFS_READ_ONLY" = "yes" ]; then
     exit 0
 fi
 
-if [ "$DEVCACHE" != "" -a -e "$DEVCACHE_REGEN" ]; then
-	echo "Populating dev cache"
-	(
-		udevadm control --stop-exec-queue
-		sysconf_cmd > "$SYSCONF_TMP"
-		find /dev -xdev \( -type b -o -type c -o -type l \) | cut -c 2- \
-			| xargs tar cf "${DEVCACHE_TMP}" -T-
-			gzip < "${DEVCACHE_TMP}" > "$DEVCACHE"
-			rm -f "${DEVCACHE_TMP}"
-			mv "$SYSCONF_TMP" "$SYSCONF_CACHED"
-			udevadm control --start-exec-queue
-			rm -f "$DEVCACHE_REGEN"
-	) &
+[ "$DEVCACHE" != "" ] || exit 0
+[ "${VERBOSE}" == "no" ] || echo -n "udev-cache: checking for ${DEVCACHE_REGEN}... "
+if ! [ -e "$DEVCACHE_REGEN" ]; then
+	[ "${VERBOSE}" == "no" ] || echo "not found."
+	exit 0
 fi
+[ "${VERBOSE}" == "no" ] || echo "found."
+echo "Populating dev cache"
+
+(
+	set -e
+	trap 'echo "udev-cache: update failed!"' EXIT
+	udevadm control --stop-exec-queue
+	sysconf_cmd > "$SYSCONF_TMP"
+	find /dev -xdev \( -type b -o -type c -o -type l \) | cut -c 2- \
+		| xargs tar cf "${DEVCACHE_TMP}" -T-
+	gzip < "${DEVCACHE_TMP}" > "$DEVCACHE"
+	rm -f "${DEVCACHE_TMP}"
+	mv "$SYSCONF_TMP" "$SYSCONF_CACHED"
+	udevadm control --start-exec-queue
+	rm -f "$DEVCACHE_REGEN"
+	trap - EXIT
+) &
 
 exit 0



More information about the Openembedded-commits mailing list