FreeBSD-5.3/etc/rc.d/gbde_swap

#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/gbde_swap,v 1.4.2.2 2004/10/10 09:50:53 mtm Exp $
#

# 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"