aboutsummaryrefslogblamecommitdiff
path: root/etc/rc.d/gbde_swap
blob: 82ac8da45f1a0ad46ac26a4ec0d30909814e134b (plain) (tree)
1
2
3
4
5
6
7
8





                
                     
                 








                            
                                                           



                                                       







                                                                           

                                                                      
                         



                  
                                                           



                                                       







                                       
                         



                    
#!/bin/sh
#
# $FreeBSD$
#

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