bzr branch
http://bzr.recompile.se/loggerhead/mandos/trunk
74
by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New. |
1 |
#!/bin/sh -e
|
2 |
||
3 |
# If not on a tty, then get rid of possibly disrupting stderr output
|
|
4 |
if ! tty -s; then |
|
5 |
exec 2>/dev/null |
|
6 |
fi
|
|
7 |
||
8 |
test -x /sbin/usplash |
|
9 |
||
10 |
usplash="`pidof usplash -o $$`" |
|
11 |
test -n "$usplash" |
|
12 |
||
13 |
# We get some variables from cryptsetup:
|
|
14 |
# $cryptsource the device node, like "/dev/sda3"
|
|
15 |
# $crypttarget the device mapper name, like "sda3_crypt".
|
|
16 |
||
17 |
prompt="Enter passphrase to unlock" |
|
18 |
if [ -n "$crypttarget" ]; then |
|
19 |
prompt="$prompt the disk $crypttarget" |
|
20 |
fi
|
|
21 |
if [ -n "$cryptsource" ]; then |
|
22 |
prompt="$prompt ($cryptsource)" |
|
23 |
fi
|
|
24 |
||
25 |
splash_input_password(){
|
|
26 |
test -p /dev/.initramfs/usplash_outfifo || return 1 |
|
27 |
/sbin/usplash_write "INPUTQUIET $1" || return 1 |
|
28 |
cat /dev/.initramfs/usplash_outfifo 2> /dev/null || return 1 |
|
29 |
}
|
|
30 |
||
31 |
# Usplash keeps waiting for input even if some other plugin provided
|
|
32 |
# the password, so we must kill it
|
|
33 |
trap "kill -TERM $usplash; sleep 2; kill -KILL $usplash; |
|
34 |
kill -TERM $$" TERM HUP |
|
35 |
||
36 |
password="`splash_input_password \"$prompt: \" password`" |
|
37 |
||
38 |
trap - TERM |
|
39 |
||
40 |
/sbin/usplash_write "TIMEOUT 15" |
|
41 |
||
42 |
echo -n "$password" |