#! /bin/sh

dmesg=/var/run/dmesg.boot
resultfil=/tmp/result
stuffs='10'
disks=`sed -n -E '/^(da|ad)[0-9]:.*</p' $dmesg | sed 's/^\(...\).*/\1/'`
set $disks
disk=$1
export TITLE='ハードディスク消去ツール『wipe-out』'
dumpskip=0

while true ; do
	dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'`
	bytes=`diskinfo -B /dev/r$disk`
	# bytes=`diskinfo -b /dev/r$disk | rev | sed 's/\(...\)/\1,/g' | sed 's/,$//' | rev`
	cap=`diskinfo -p /dev/r$disk`

	msg="                      ★メインメニュー★\n"
	msg="${msg}現在選択中のディスクは /dev/${disk} ${dname} です。\n"
	msg="${msg}ディスクの容量は $bytes バイト ($cap) です。\n"
	msg="${msg}以下のメニューから処理を選択してください。\n"

	dialog 	2>$resultfil \
		--title "$TITLE" \
		--menu "$msg" \
		19 74 7 \
		z '0を上書きして、このディスクのデータを消す' \
		f '1を上書きして、このディスクのデータを消す' \
		r 'ランダムデータを上書きして、このディスクのデータを消す' \
		s '別のディスクを選択する' \
		n '複数回上書きして、このディスクのデータを念入りに消す' \
		m '念入り消去の上書き方法を選択する' \
		c 'データが消去されたか確認する (高速／一部をチェック)' \
		C 'データが消去されたか確認する (通常／全部をチェック)' \
		d 'ディスクのデータを表示する' \
		S 'データを表示するセクタの指定' \
		D '起動時のシステムメッセージを確認する' \
		v '「『wipe-out』について」を見る' \
		b 'シェル (sh) を起動する' \
		t 'シェル (csh) を起動する' \
		M 'CD-ROMをmountする' \
		U 'CD-ROMをumountする' \
		x 'シャットダウンする' \
		R '再起動する'

	case x"$?" in
		x1)
			break
			;;
	esac

	result=`cat $resultfil`

	case x"${result}" in
		xz)
			sh erase.sh -z $disk
			;;
		xf)
			sh erase.sh -f $disk
			;;
		xr)
			sh erase.sh -r $disk
			;;
		xs)
			. seldisk.sh
			;;
		xn)
			sh fine-erase.sh $stuffs $disk
			;;
		xm)
			. sel-fine.sh
			;;
		xc)
			sh verify.sh 90 $disk
			;;
		xC)
			sh verify.sh 0 $disk
			;;
		xd)
			sh dump.sh $dumpskip $disk
			dumpskip=`expr $dumpskip + 1`
			;;
		xS)
			msg="セクタを指定してください ($dumpskip)"
			dialog	2>/tmp/sector \
				--title "$TITLE" \
				--inputbox "$msg" 8 64
			case $? in
			    0)
				echo '' >> /tmp/sector
				echo "$dumpskip" >> /tmp/sector
				dumpskip=`sed -n '/^[0-9]/p' /tmp/sector | sed -n 1p`
				;;
			esac
			;;
		xv)
			dialog	--title '『wipe-out』について' \
				--textbox info.txt 22 76
			;;
		xD)
			dialog	--title '起動時のシステムメッセージ' \
				--textbox /var/run/dmesg.boot 22 76
			;;
		xb)
			/bin/sh -i
			;;
		xt)
			if [ -x /bin/csh ]; then
				/bin/csh -i
			else
				msg='cshの入ったCD-ROMをマウントしてください'
				dialog	--title "$TITLE" \
					--msgbox "$msg" 5 64
			fi
			;;
		xM)
			if [ -x /cdrom/usr.bin/dialog ]; then
				msg='CD-ROMはすでにマウントされています'
			elif mount_cd9660 $CDROM /cdrom > /dev/null 2>&1; then
				msg='CD-ROMをマウントしました'
			else
				msg='CD-ROMをマウントできませんでした'
			fi
			dialog	--title "$TITLE" \
				--msgbox "$msg" 5 64
			;;
		xU)
			msg=''
			if [ ! -x /cdrom/usr.bin/dialog ]; then
				msg='CD-ROMはすでにアンマウントされています'
			fi
			if umount /cdrom > /dev/null 2>&1; then
				msg='CD-ROMをアンマウントしました'
			elif [ -z "$msg" ]; then
				msg='CD-ROMアンマウントできませんでした'
			fi
			dialog	--title "$TITLE" \
				--msgbox "$msg" 5 64
			;;
		xx)
			init 0
			;;
		xR)
			init 6
			;;
	esac
done

dialog	--title "$TITLE" \
	--infobox '終了します' 3 48

echo '「/bin/sh /wipeout/mainmenu.sh」でメニュー画面を呼び出せます。'
echo ''

exit 0

# EOF
