blob: 5068d4b7516866291cc32ad9d39837c0de593bbb (
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
|
#!/bin/sh
outdev=samizdat.iso
indev=debian-live-8.4.0-amd64-standard.iso
volid=SamizdatLive
gpg_iso_path=gnupghome
gnupghome=gnupghome
secrets=secrets
if [ $# = 0 ]; then
set -- debian-live-8.4.0-amd64-standard.btrfs layer.btrfs
fi
for fs; do
[ -f "$fs" ] || exit 1
shift
set -- "$@" "rootfs/${fs##*/}=$fs"
done
die() { printf '%s\n' "$*"; exit 1; }
make_gnupghome()
{
[ -d "$gnupghome" ] && return
local reset=$-
set -e
[ ! -d "$gnupghome".tmp ] || die "Error: refusing to overwrite $gnupghome.tmp"
[ ! -d "$secrets".tmp ] || die "Error: refusing to overwrite $secrets.tmp"
mkdir -p "$gnupghome".tmp "$secrets".tmp
local PATH="$HOME"/src/samizdat/src:"$PATH" NO_USE_RAMFS=y
NEW_GNUPGHOME="$gnupghome".tmp SECRETS_DIRECTORY="$secrets".tmp ~/src/samizdat/src/samizdat-make-key --adam
mv "$secrets".tmp "$secrets"
mv "$gnupghome".tmp "$gnupghome"
set -$reset
}
make_gnupghome
if [ grub-efi.sh -nt grub-efi ]; then
./grub-efi.sh || die "Error: grub-efi.sh failed"
fi
set -ex
xorriso \
-drive_class clear_list all \
-outdev "$outdev"~ \
-report_about mishap \
-return_with sorry 0 \
-volid "$volid" \
-pathspecs on \
\
\
-add "${gpg_iso_path}=${gnupghome}" -- \
-add linux=isolinux/linux -- \
-follow link -add "$@" -- -follow default \
\
\
-as mkisofs -graft-points \
-b grub/i386-pc/eltorito.img \
-no-emul-boot -boot-info-table \
--embedded-boot grub-efi/embedded.img \
--protective-msdos-label \
grub=grub-efi/grub
mv -f "$outdev"~ "$outdev"
|