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