blob: 028077821453a1fd89eee0bcff4cb9a2d79ede2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
#!/bin/bash
ok=1
while [ -n "$1" ]; do
case "$1" in
--lang)
lang="$2"
shift
shift
;;
--i18n-loop)
i18n_loop="$2"
shift
shift
;;
--boot-loop)
boot_loop="$2"
shift
shift
;;
--main-loop)
main_loop="$2"
shift
shift
;;
--totem-pid)
totem_pid="$2"
shift
shift
;;
--user)
USER="$2"
shift
shift
;;
--restore-cmd)
RESTORE_CMD="$2"
shift
shift
;;
*)
ok=''
shift
esac
done
if [ -z "$totem_pid" -o -z "$ok" ]; then
printf "Usage: mdk_behind_totem [--boot-loop <loop>] [--main-loop <loop>] --totem-pid <pid>\n"
exit 1
fi
exec &> /tmp/mdk_behind_totem.log
trap 'umount_cd' USR1
umount_cd() {
echo umount_cd
umount /image_i18n_$lang
losetup -d /dev/$i18n_loop
umount /image_boot
losetup -d /dev/$boot_loop
ln -sf /image_always/lib /
if [ -L /image ]; then
rm -f /image
else
umount /image && \
/image_always/sbin/losetup -d /dev/$main_loop || { mount_cd; kill $totem_pid; exec mdk_totem; }
fi
/image_always/usr/bin/eject
}
mount_cd() {
echo mount_cd
if [ -e /cdrom/live_tree.clp ]; then
/image_always/sbin/losetup -r -e gz /dev/$main_loop /cdrom/live_tree.clp
/image_always/bin/mount -r /dev/$main_loop /image
else
ln -sf /cdrom/live_tree /image
fi
losetup -r -e gz /dev/$boot_loop /cdrom/live_tree_boot.clp
mount -r /dev/$boot_loop /image_boot
losetup -r -e gz /dev/$i18n_loop /cdrom/live_tree_i18n_$lang.clp
mount -r /dev/$i18n_loop /image_i18n_$lang
ln -sf /image/lib /
mdk_move_loop to_cdrom always always_i18n totem nvidia
# restore killed kde apps
su -c "$RESTORE_CMD" $USER
}
while [ -e "/proc/$totem_pid" ]; do
echo "waiting..."
/image_totem/bin/sleep 1
done
mount_cd
|