#!/bin/sh
set -ex
stamp=/var/erase-other-disks.stamp
if test -f $stamp; then
    logger -t osstest-erase-other-disks-$$ "Already ran, exiting"
    exit 0
fi
>$stamp

log () {
    logger -t osstest-erase-other-disks-$$ "$@"
}

log "Running..."

zero () {
    if test -b $dev; then
        log "Erasing $dev"
        dd if=/dev/zero of=$dev count=64 ||:
        if ! test -b $dev; then
            log "$dev is no longer a block device!"
            exit 1
        fi
    else
        log "$dev does not exist or is not a block device."
    fi
}

rescan () {
    if ! test -b ${dev}; then
	return
    fi
    log "Rescaning partition table on ${dev}"
    echo 1 > /sys/block/${dev#/dev/}/device/rescan
}

udevadm settle
for sd in sd hd; do
    log "${sd} devices present before: `echo /dev/${sd}*`"
    for b in a b c d e f; do
        for dev in /dev/${sd}${b}[0-9]; do
            zero
        done

        dev=/dev/${sd}${b}
        zero
        rescan
    done
    udevadm settle
    log "${sd} devices present after: `echo /dev/${sd}*`"
done
for dev in /dev/sda*; do
    zero
done
echo ===
set +e
ls -l /dev/sd*
true
