#!/bin/sh
#
# $FreeBSD: stable/5/etc/rc.d/gbde_swap 136348 2004-10-10 09:50:54Z mtm $
#

# PROVIDE: disks
# REQUIRE: initrandom
# KEYWORD: nojail

. /etc/rc.subr

name="gbde_swap"
start_cmd="gbde_swap_attach"
stop_cmd="gbde_swap_detach"

gbde_swap_attach()
{
	while read device mountpoint type options rest ; do
		case ":${device}:${type}:${options}" in
		:#*)
			continue
			;;
		*.bde:swap:sw)
			;;
		*)
			continue
			;;
		esac
		passphrase=`dd if=/dev/random count=1 2>/dev/null | md5 -q`
		device="${device%.bde}"
		gbde init "${device}" -P "${passphrase}" || return 1
		gbde attach "${device}" -p "${passphrase}" || return 1
	done < /etc/fstab
}

gbde_swap_detach()
{
	while read device mountpoint type options rest ; do
		case ":${device}:${type}:${options}" in
		:#*)
			continue
			;;
		*.bde:swap:sw)
			;;
		*)
			continue
			;;
		esac
		device="${device%.bde}"
		gbde detach "${device}"
	done < /etc/fstab
}

load_rc_config $name
run_rc_command "$1"
