Quoting noprompt variable in initscript to avoid syntax errors, thanks to Philip...
[live-boot-grml.git] / debian / live-boot.init
index 1130730..ab09d2a 100644 (file)
@@ -49,8 +49,24 @@ cache_path()
        then
                if file -L "${path}" | grep -q 'dynamically linked'
                then
-                       for lib in $(ldd "${path}" | awk '{ print $3 }')
+                       # ldd output can be of three forms:
+                       # 1. linux-vdso.so.1 =>  (0x00007fffe3fb4000)
+                       #    This is a virtual, kernel shared library and we want to skip it
+                       # 2. libc.so.6 => /lib/libc.so.6 (0x00007f5e9dc0c000)
+                       #    We want to cache the third word.
+                       # 3. /lib64/ld-linux-x86-64.so.2 (0x00007f5e9df8b000)
+                       #    We want to cache the first word.
+                       ldd "${path}" | while read line
                        do
+                               if echo "$line" | grep -qs ' =>  '
+                               then
+                                       continue
+                               elif echo "$line" | grep -qs ' => '
+                               then
+                                       lib=$(echo "${line}" | awk '{ print $3 }')
+                               else
+                                       lib=$(echo "${line}" | awk '{ print $1 }')
+                               fi
                                cache_path "${lib}"
                        done
                fi
@@ -184,7 +200,7 @@ do_stop ()
                                eject -p -m /live/image >/dev/null 2>&1
                        fi
 
-                       if [ ${NOPROMPT} = "cd" ]
+                       if [ "${NOPROMPT}" = "cd" ]
                        then
                                prompt=
                        fi