bin/wakey.zsh: Implement the active-window check from Lange's version.
[profile] / bin / check-blkdev-size
CommitLineData
a98bca79
MW
1#! /bin/bash
2
3set -e -o pipefail
4
5case $# in 1) ;; *) echo >&2 "usage: $0 DEV"; exit 127 ;; esac
6dev=$1
7
8typeset -i sz; sz=$(blockdev --getsize64 "$dev")
9k=$(gorp -fhex 256)
10
11## Figure out a useful block size.
12typeset -i bsz=1 nb=$sz
13for i in 2 3 5 7; do
14 while :; do
15 case $((nb%i)) in
16 0) bsz=$((bsz*i)) nb=$((nb/i)) ;;
17 *) break ;;
18 esac
19 if (( bsz >= 65536 )); then break 2; fi
20 done
21done
22echo >&2 "$0: using $nb blocks of size $bsz"
23
24## Write the initial stream.
25echo >&2 "$0: writing pseudorandom pattern..."
26rspit salsa20/8 -H$k -z$sz -pT | \
27 dd status=none iflag=fullblock oflag=direct bs=$bsz count=$nb of="$dev"
28echo >&2 "$0: writing pseudorandom pattern... done"
29
30## Read the stream back, and check against the reference.
31echo >&2 "$0: checking pseudorandom pattern..."
32cmp <(rspit salsa20/8 -H$k -z$sz -pT) \
33 <(dd status=none iflag=direct bs=$bsz count=$nb if="$dev")
34echo >&2 "$0: checking pseudorandom pattern... done"
35echo >&2 "$0: all ok"