#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/gbde_swap,v 1.3 2004/02/05 21:40:37 des Exp $
#

# PROVIDE: disks
# REQUIRE: initrandom
# KEYWORD: FreeBSD

. /etc/rc.subr

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

gbde_swap_attach()
{
	cat /etc/fstab |
	while read device mountpoint type options rest ; do
		case "${device}:${type}:${options}" in
		*.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
}

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

load_rc_config $name
run_rc_command "$1"
