diff options
Diffstat (limited to 'src/mkinitramfs-samizdat')
-rwxr-xr-x | src/mkinitramfs-samizdat | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/mkinitramfs-samizdat b/src/mkinitramfs-samizdat index 566389e..7f2b1a7 100755 --- a/src/mkinitramfs-samizdat +++ b/src/mkinitramfs-samizdat | |||
@@ -1,20 +1,36 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | if [ "$(id -u)" != 0 ] | ||
4 | then | ||
5 | exec sudo -- "$0" "$@" | ||
6 | exit 1 | ||
7 | fi | ||
8 | |||
3 | f() | 9 | f() |
4 | { | 10 | { |
5 | sudo /usr/sbin/mkinitramfs \ | 11 | /usr/sbin/mkinitramfs \ |
6 | -d /usr/local/lib/samizdat-rhizome/initramfs-tools/ \ | 12 | -d /usr/local/lib/samizdat-rhizome/initramfs-tools/ \ |
7 | -o "/boot/initrd.img-$1.samizdat" \ | 13 | -o "/boot/initrd.img-$1.samizdat" \ |
8 | -k "$1" || return | 14 | -k "$1" || return |
9 | sudo ln -sf "initrd.img-$1.samizdat" /boot/initrd.img | 15 | ln -sf "initrd.img-$1.samizdat" /initrd.img |
10 | } | 16 | } |
11 | 17 | ||
12 | if [ "$1" ] | 18 | if [ "$1" ] |
13 | then | 19 | then |
14 | f "$1" || exit | 20 | k=/boot/vmlinuz-$1 |
15 | sudo ln -sf "vmlinuz-$1" /boot/vmlinuz | 21 | if ! [ -e "$k" ] |
22 | then | ||
23 | printf 'Error: No such file: %s\n' "$k" >&2 | ||
24 | fi | ||
25 | f "$1" || exit | ||
26 | ln -sf "vmlinuz-$1" /vmlinuz | ||
27 | elif [ -L /vmlinuz ] | ||
28 | then | ||
29 | l=$(readlink /vmlinuz) | ||
30 | v=${l#boot/vmlinuz-} | ||
31 | [ -e "/boot/vmlinuz-$v" ] || exit | ||
32 | f "$v" | ||
16 | else | 33 | else |
17 | l=$(readlink /boot/vmlinuz) | 34 | printf 'Error: Could not determine kernel version. Create /vmlinuz or specify a version.' >&2 |
18 | v=${l#vmlinuz-} | 35 | exit 1 |
19 | f "$v" | ||
20 | fi | 36 | fi |