slitaz-forge diff mirror/floppies/mkmdsum.sh @ rev 717

mirror/floppies: add mkmdsum.sh
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Aug 20 11:39:45 2021 +0000 (2021-08-20)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/mirror/floppies/mkmdsum.sh	Fri Aug 20 11:39:45 2021 +0000
     1.3 @@ -0,0 +1,39 @@
     1.4 +#!/bin/sh
     1.5 +
     1.6 +case "$1" in
     1.7 +
     1.8 +set)
     1.9 +	shift
    1.10 +	for dir in $@; do
    1.11 +		for i in $dir/*0 ; do
    1.12 +			echo $i
    1.13 +			sh $0 md5sum $dir $(basename $i) | tee $i/md5sum
    1.14 +		done
    1.15 +	done ;;
    1.16 +
    1.17 +md5sum)
    1.18 +	n=1; ofs=0; dir=${2:-4.0}; size=${3:-1474560}
    1.19 +	SETS="$(sed '/sets =/!d;s|.*\[||;s|\].*||;s|,| |g' index-$dir.html)"
    1.20 +
    1.21 +	for max in $SETS; do :; done
    1.22 +	[ ! -s $dir/fd.img ] && cat $dir/fd???.img > $dir/fd.img && dd size=0 bs=1 seek=$max 2>/dev/null
    1.23 +	for max in $SETS; do
    1.24 +		while true; do
    1.25 +			[ $(stat -c %s $dir/fd.img) -gt $ofs ] || break 2
    1.26 +			dd if=$dir/fd.img bs=512 skip=$(($ofs/512)) count=$(($size/512)) \
    1.27 +			  2>/dev/null | md5sum | sed "s|-$|fd$(printf "%03d" $n).img|"
    1.28 +			ofs=$(($ofs+$size)); n=$(($n+1))
    1.29 +			[ $ofs -ge $max ] && n=$(($n-($n%100)+100)) && break
    1.30 +		done
    1.31 +	done ;;
    1.32 +
    1.33 +*)	cat <<EOT
    1.34 +Usage:
    1.35 +
    1.36 +$0 md5sum directory [floppy bytes]
    1.37 +   display the md5sum file
    1.38 +
    1.39 +$0 set directory...
    1.40 +   create every directory/*/md5sum file
    1.41 +EOT
    1.42 +esac