Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 202364
Collapse All | Expand All

(-)/usr/portage/sys-fs/cryptsetup/files/1.0.5-dm-crypt-start.sh (-11 / +27 lines)
Lines 59-66 Link Here
59
		return
59
		return
60
	fi
60
	fi
61
	splash svc_input_begin ${SVCNAME} >/dev/null 2>&1
61
	splash svc_input_begin ${SVCNAME} >/dev/null 2>&1
62
62
	# Handle keys
63
	# Handle keys
63
	if [ -n "$key" ]; then
64
	if [ -n "$key" ]; then
65
		read_abort() {
66
			local ans
67
			local prompt=" ${green}*${off}  $1? (${red}yes${off}/${green}No${off}) "
68
			shift
69
			echo -n -e "${prompt}" >/dev/console
70
			if ! read -n 1 $* ans </dev/console ; then
71
				local back=${prompt//?/\\b}
72
				echo -n -e "${back}" >/dev/console
73
			else
74
				echo >/dev/console
75
			fi
76
			case $ans in
77
				[yY]|[yY][eE][sS]) return 0;;
78
				*) return 1;;
79
			esac
80
		}
81
64
		# Notes: sed not used to avoid case where /usr partition is encrypted.
82
		# Notes: sed not used to avoid case where /usr partition is encrypted.
65
		mode=${key/*:/} && ( [ "$mode" == "$key" ] || [ -z "$mode" ] ) && mode=reg
83
		mode=${key/*:/} && ( [ "$mode" == "$key" ] || [ -z "$mode" ] ) && mode=reg
66
		key=${key/:*/}
84
		key=${key/:*/}
Lines 70-90 Link Here
70
			if [ -n "$remdev" ]; then
88
			if [ -n "$remdev" ]; then
71
				# temp directory to mount removable device
89
				# temp directory to mount removable device
72
				local mntrem=/mnt/remdev
90
				local mntrem=/mnt/remdev
73
				local c=0 ans
91
				local c=0
74
				for (( i = 0 ; i < 10 ; i++ ))
92
				for (( i = 0 ; i < 10 ; i++ ))
75
				do
93
				do
76
					[ ! -d "$mntrem" ] && mkdir -p ${mntrem} 2>/dev/null >/dev/null
94
					[ ! -d "$mntrem" ] && mkdir -p ${mntrem} 2>/dev/null >/dev/null
77
					if mount -n -o ro ${remdev} ${mntrem} 2>/dev/null >/dev/null ; then
95
					if mount -n -o ro ${remdev} ${mntrem} 2>/dev/null >/dev/null ; then
78
						sleep 2
96
						read_abort "Stop waiting after $i attempts" -t 1 && return
79
						# keyfile exists?
97
						# keyfile exists?
80
						if [ ! -e "${mntrem}${key}" ]; then
98
						if [ ! -e "${mntrem}${key}" ]; then
81
							umount -n ${mntrem} 2>/dev/null >/dev/null
99
							umount -n ${mntrem} 2>/dev/null >/dev/null
82
							rmdir ${mntrem} 2>/dev/null >/dev/null
100
							rmdir ${mntrem} 2>/dev/null >/dev/null
83
							einfo "Cannot find ${key} on removable media."
101
							einfo "Cannot find ${key} on removable media."
84
							echo -n -e " ${green}*${off}  Abort?(${red}yes${off}/${green}no${off})" >/dev/console
102
							read_abort "Abort" ${read_timeout} && return
85
							read ${read_timeout} ans </dev/console
103
							i=0
86
							echo	>/dev/console
104
							c=0
87
							[ "$ans" = "no" ] && { i=0; c=0; } || return
88
						else
105
						else
89
							key="${mntrem}${key}"
106
							key="${mntrem}${key}"
90
							break
107
							break
Lines 92-106 Link Here
92
					else
109
					else
93
						[ "$c" -eq 0 ] && einfo "Please insert removable device for ${target}"
110
						[ "$c" -eq 0 ] && einfo "Please insert removable device for ${target}"
94
						c=1
111
						c=1
95
						sleep 2
112
						read_abort "Stop waiting after $i attempts" -t 1 && return
96
						# let user abort
113
						# let user abort
97
						if [ "$i" -eq 9 ]; then
114
						if [ "$i" -eq 9 ]; then
98
							rmdir ${mntrem} 2>/dev/null >/dev/null
115
							rmdir ${mntrem} 2>/dev/null >/dev/null
99
							einfo "Removable device for ${target} not present."
116
							einfo "Removable device for ${target} not present."
100
							echo -n -e " ${green}*${off}  Abort?(${red}yes${off}/${green}no${off})" >/dev/console
117
							read_abort "Abort" ${read_timeout} && return
101
							read ${read_timeout} ans </dev/console
118
							i=0
102
							echo  >/dev/console
119
							c=0
103
							[ "$ans" = "no" ] && { i=0; c=0; } || return
104
						fi
120
						fi
105
					fi
121
					fi
106
				done
122
				done

Return to bug 202364