Adding upstream version 4.0~a4.
[live-boot-grml.git] / scripts / boot / 3010-verify-checksums
index cc4115d..08b2972 100755 (executable)
@@ -7,48 +7,60 @@ Verify_checksums ()
        for _PARAMETER in ${_CMDLINE}
        do
                case "${_PARAMETER}" in
+                       live-boot.verify-checksums=*|verify-checksums=*)
+                               LIVE_VERIFY_CHECKSUMS="true"
+                               LIVE_VERIFY_CHECKSUMS_DIGESTS="${_PARAMETER#*verify-checksums=}"
+                               ;;
+
                        live-boot.verify-checksums|verify-checksums)
                                LIVE_VERIFY_CHECKSUMS="true"
                                ;;
                esac
        done
 
-       if [ "${LIVE_VERIFY_CHECKSUMS}" != "true" ]
-       then
-               return 0
-       fi
+       case "${LIVE_VERIFY_CHECKSUMS}" in
+               true)
+                       ;;
+
+               *)
+                       return 0
+                       ;;
+       esac
 
        _MOUNTPOINT="${1}"
 
-       _DIGESTS="sha512 sha384 sha256 sha224 sha1 md5"
+       LIVE_VERIFY_CHECKSUMS_DIGESTS="${LIVE_VERIFY_CHECKSUMS_DIGESTS:-sha512 sha384 sha256 sha224 sha1 md5}"
        _TTY="/dev/tty8"
 
        log_begin_msg "Verifying checksums"
 
        cd "${_MOUNTPOINT}"
 
-       for _DIGEST in ${_DIGESTS}
+       for _DIGEST in $(echo ${LIVE_VERIFY_CHECKSUMS_DIGESTS} | sed -e 's|,| |g')
        do
-               _CHECKSUMS="$(echo ${_DIGEST} | tr [a-z] [A-Z])SUMS"
+               _CHECKSUMS="$(echo ${_DIGEST} | tr [a-z] [A-Z])SUMS ${_DIGEST}sum.txt"
 
-               if [ -e "${_CHECKSUMS}" ]
-               then
-                       echo "Found ${_CHECKSUMS}..." > "${_TTY}"
-
-                       if [ -e "/bin/${_DIGEST}sum" ]
+               for _CHECKSUM in ${_CHECKSUMS}
+               do
+                       if [ -e "${_CHECKSUM}" ]
                        then
-                               echo "Checking ${_CHECKSUMS}..." > "${_TTY}"
+                               echo "Found ${_CHECKSUM}..." > "${_TTY}"
+
+                               if [ -e "/bin/${_DIGEST}sum" ]
+                               then
+                                       echo "Checking ${_CHECKSUM}..." > "${_TTY}"
 
-                               # Verify checksums
-                               /bin/${_DIGEST}sum -c "${_CHECKSUMS}" < "${_TTY}" > "${_TTY}"
-                               _RETURN="${?}"
+                                       # Verify checksums
+                                       /bin/${_DIGEST}sum -c "${_CHECKSUM}" < "${_TTY}" > "${_TTY}"
+                                       _RETURN="${?}"
 
-                               # Stop after first verification
-                               break
-                       else
-                               echo "Not found /bin/${_DIGEST}sum..." > "${_TTY}"
+                                       # Stop after first verification
+                                       break
+                               else
+                                       echo "Not found /bin/${_DIGEST}sum..." > "${_TTY}"
+                               fi
                        fi
-               fi
+               done
        done
 
        log_end_msg