From 458c8b54f9827e223186cedd56fbbeb9d3c3dcfd Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 21 Jun 2019 17:18:38 +0200 Subject: [PATCH] Implement uninstall action Signed-off-by: Michael Tremer --- src/kernel-updater.in | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/kernel-updater.in b/src/kernel-updater.in index 1e4f7b8..9ce96b7 100644 --- a/src/kernel-updater.in +++ b/src/kernel-updater.in @@ -25,6 +25,8 @@ PACKAGE_VERSION="@PACKAGE_VERSION@" GRUB_CFG="/boot/grub/grub.cfg" MODULES_PATH="/lib/modules" +RUNNING_VERSION="$(uname -r)" + update_bootloader() { # GRUB if [ -e "${GRUB_CFG}" ]; then @@ -70,6 +72,24 @@ do_install() { return 0 } +do_uninstall() { + local version="${1}" + + # Check if we are removing the running kernel + if [ "${version}" = "${RUNNING_VERSION}" ]; then + echo "You cannot remove the currently running kernel ${RUNNING_VERSION}" >&2 + return 1 + fi + + # Remove initramfs + rm -f "/boot/initramfs-${version}.img" + + # Update the bootloader configuration + update_bootloader || return $? + + return 0 +} + check_version() { local version="${1}" @@ -86,7 +106,7 @@ main() { shift 2 if [ -z "${version}" ]; then - version="$(uname -r)" + version="${RUNNING_VERSION}" fi case "${action}" in @@ -94,6 +114,10 @@ main() { do_install "${version}" || return $? ;; + uninstall) + do_uninstall "${version}" || return $? + ;; + version) echo "${PACKAGE_NAME}: Version ${PACKAGE_VERSION}" return 0 -- 2.47.3