livecd-tools/installer/md5progress.sh

58 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
VERSION=0.2
MOUNTPATH="/cdrom"
CHECKFILE=/LiveOS/squashfs.img
MD5FILE=/LiveOS/squashfs.img.MD5
TEXTDOMAIN=installer
TEXTDOMAINDIR=/opt/kde3/share/locale/
[ -e $MOUNTPATH/$CHECKFILE ] || {
# this is only intended for debugging reason in development environment
MOUNTPATH="/media/openmamba livecd"
}
function progress_parser() {
while read -d "left" line; do
line=${line/*$CHECKFILE /}
line=${line/MB done*/}
elapsed=${line/MB*/}
total=${line/* of /}
percent=`expr \( $elapsed \* 100 \) \/ $total`
dcop $DCOPID KommanderIf setText md5ProgressBar $percent || exit 1
done
}
DCOPID=$1
echo $"\
openmamba md5 media check - version $VERSION
Copyright (c) 2007-2010 by Silvan Calarco <silvan.calarco@mambasoft.it>
"
[ $DCOPID ] || {
echo $"Error: this program must be launched by mamba installer; aborting."
exit 1
}
if [ -e "$MOUNTPATH/$CHECKFILE" -a -e "$MOUNTPATH/$MD5FILE" ]; then
md5check=`cat "$MOUNTPATH/$MD5FILE" | sed "s|\([[:alnum:]]*\).*|\1|"`
tmpfile=`tempfile 2>/dev/null` || tmpfile="/tmp/md5progress"
md5deep -e "$MOUNTPATH/$CHECKFILE" 2>&1 1>$tmpfile| progress_parser
md5calc=`cat $tmpfile | sed "s|[^[:alnum:]]*\([[:alnum:]]*\).*|\1|g"`
rm -f $tmpfile
[ $md5calc = $md5check ] && {
dcop $DCOPID KommanderIf setText integrityCheckLabel $"Medium check OK. Press next to proceed with installation."
dcop $DCOPID KommanderIf setEnabled next true
} || dcop $DCOPID KommanderIf setText integrityCheckLabel $"<font color=red>ERROR: medium has errors; please try with another medium.</font>"
else
dcop $DCOPID KommanderIf setText integrityCheckLabel $"<font color=red>ERROR: this program must be run from live medium.</font>"
fi
dcop $DCOPID KommanderIf setVisible md5ProgressBar false
dcop $DCOPID KommanderIf setVisible skipButton false
exit 0