Fixing a bug with multiple files in is_live_path after the last commit.
authorMichael Stummvoll <michael@stummi.org>
Wed, 27 Mar 2013 15:22:05 +0000 (16:22 +0100)
committerDaniel Baumann <mail@daniel-baumann.ch>
Mon, 6 May 2013 11:54:16 +0000 (13:54 +0200)
The version in the last commit has a bug handling multiple files in
is_live_path, the fix introduces file_pattern_matches() which checks for $1
only. So even if there are multiple files matching the pattern only the first
one will go into the [ -e ... ] expression.

scripts/boot/9990-misc-helpers.sh

index 8d7943e..40e69be 100755 (executable)
@@ -2,21 +2,21 @@
 
 #set -e
 
-is_live_path ()
+file_pattern_matches()
 {
-       DIRECTORY="${1}"
-
-       if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ]
-       then
-               for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs2
-               do
-                       if [ -e "${DIRECTORY}/${LIVE_MEDIA_PATH}/"*".${FILESYSTEM}" ]
-                       then
-                               return 0
-                       fi
-               done
-       fi
+       [ -e "$1" ]
+}
 
+is_live_path()
+{
+       DIRECTORY="${1}/${LIVE_MEDIA_PATH}"
+       for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs
+       do
+               if file_pattern_matches "${DIRECTORY}/"*.${FILESYSTEM}
+               then
+                       return 0
+               fi
+       done
        return 1
 }