diff options
| author | Suren A. Chilingaryan <csa@suren.me> | 2019-09-01 00:00:32 +0200 | 
|---|---|---|
| committer | Suren A. Chilingaryan <csa@suren.me> | 2019-09-01 00:00:32 +0200 | 
| commit | ca9627e70852f6b2e835660df870fe3ab405882d (patch) | |
| tree | 0a008b1d5b16fa0679a195ed7b5662c7891f591c /sys-apps/util-linux/files/crypto-loop.initd | |
| download | darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.gz darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.bz2 darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.xz darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.zip | |
Initial import
Diffstat (limited to 'sys-apps/util-linux/files/crypto-loop.initd')
| -rwxr-xr-x | sys-apps/util-linux/files/crypto-loop.initd | 70 | 
1 files changed, 70 insertions, 0 deletions
| diff --git a/sys-apps/util-linux/files/crypto-loop.initd b/sys-apps/util-linux/files/crypto-loop.initd new file mode 100755 index 0000000..2886982 --- /dev/null +++ b/sys-apps/util-linux/files/crypto-loop.initd @@ -0,0 +1,70 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/files/crypto-loop.initd,v 1.3 2008/02/01 12:36:44 flameeyes Exp $ + +depend() { +	if [ -x /etc/init.d/root ]; then +		need root +	else +		need checkroot +	fi +	need modules +	before localmount +} + +start() { +	local status="0" + +	ebegin "Starting crypto loop devices" + +	if [[ -e /etc/conf.d/crypto-loop ]] ; then +		egrep "^loop" /etc/conf.d/crypto-loop | \ +		while read loopline ; do +			eval ${loopline} + +			local configured=$(awk -v MOUNT="${device}" \ +				'($2 == MOUNT) { print "yes" }' /proc/mounts) + +			if [[ ${configured} != "yes" ]] ; then +				einfo "  Loop ${loop} on device ${device} (cipher ${cipher}, key size ${keysize}): " + +				if [[ -n ${hash} ]] ; then +					/usr/sbin/hashalot -n ${keysize} ${hash} </dev/tty|\ +					/sbin/losetup -p 0 -e ${cipher}-${keysize} ${loop} ${device} ${other} +				else +					/sbin/losetup -e ${cipher}-${keysize} ${loop} ${device} ${other} +				fi + +				if [[ $? -ne 0 ]] ; then +					ewarn "Failure configuring ${loop}.  Skipping." +					status=1 +				fi +			else +				ewarn "  Loop ${loop} on device ${device} are already configured" +			fi +		done +	fi +	ewend ${status} "Failed to start some loop devices." + +	# We do not fail if some loop devices did not start ... +	return 0 +} + +stop() { +	local status="0" +	for loop in $(ls /dev/loop[0-9]) ; do +		losetup ${loop} &> /dev/null +		if [[ $? == 0 ]] ; then +			umount ${loop} &>/dev/null || swapoff "${loop}" &>/dev/null +			if ! /sbin/losetup -d ${loop} &> /dev/null ; then +				ewarn "Failure deconfiguring ${loop}." +				status=1 +			fi +		fi +	done +	ewend ${status} +} + + +# vim:ts=4 | 
