From a3026e0ed993c24ea2585cb58f939497d5af14d9 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Thu, 29 Oct 2020 13:09:26 -0400 Subject: use symlink /vmlinuz as canonical system kernel also: entire script runs as root now, but automatically calls sudo if run as regular user. --- src/mkinitramfs-samizdat | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'src') 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 @@ #!/bin/sh +if [ "$(id -u)" != 0 ] +then + exec sudo -- "$0" "$@" + exit 1 +fi + f() { - sudo /usr/sbin/mkinitramfs \ + /usr/sbin/mkinitramfs \ -d /usr/local/lib/samizdat-rhizome/initramfs-tools/ \ -o "/boot/initrd.img-$1.samizdat" \ -k "$1" || return - sudo ln -sf "initrd.img-$1.samizdat" /boot/initrd.img + ln -sf "initrd.img-$1.samizdat" /initrd.img } if [ "$1" ] then - f "$1" || exit - sudo ln -sf "vmlinuz-$1" /boot/vmlinuz + k=/boot/vmlinuz-$1 + if ! [ -e "$k" ] + then + printf 'Error: No such file: %s\n' "$k" >&2 + fi + f "$1" || exit + ln -sf "vmlinuz-$1" /vmlinuz +elif [ -L /vmlinuz ] +then + l=$(readlink /vmlinuz) + v=${l#boot/vmlinuz-} + [ -e "/boot/vmlinuz-$v" ] || exit + f "$v" else - l=$(readlink /boot/vmlinuz) - v=${l#vmlinuz-} - f "$v" + printf 'Error: Could not determine kernel version. Create /vmlinuz or specify a version.' >&2 + exit 1 fi -- cgit v1.2.3