Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.08 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. if [ "$(whoami)" != root ]
  4. then
  5.   echo "$0: must be root"
  6.   exit 1
  7. fi
  8.  
  9. run() {
  10.   printf "\033[1;35m--> \033[1;34m$*\033[0m\n"
  11.   "$@" || exit 1
  12. }
  13.  
  14. collect_old_kernels() {
  15.     re="$(echo "$@" | sed -re 's,linux-,,g' -e 's, ,|,')"
  16.     find /usr/src -mindepth 1 -maxdepth 1 -name 'linux-*' | grep -Ev "/linux-${re}\$"
  17.     find /boot -name 'initramfs-*' | grep -Ev "\-${re}\$"
  18.     find /boot -name 'kernel-*' | grep -Ev "\-${re}\$"
  19.     find /boot -name 'System.map-*' | grep -Ev "\-${re}\$"
  20. }
  21.  
  22. already_built() {
  23.     ver="$(echo "$1" | sed -re 's,linux-,,g')"
  24.     ls -1 /boot | grep -Eq "^initramfs-.*${ver}\$"
  25. }
  26.  
  27. cur_kernel="linux-$(uname -r)"
  28. new_kernel="$(eselect kernel list | tail -1 | awk '{print $2}')"
  29.  
  30. run eselect kernel set "${new_kernel}"
  31.  
  32. if ! already_built "${new_kernel}"
  33. then
  34.     run cp -i /usr/src/"${cur_kernel}"/.config /usr/src/"${new_kernel}"/.config
  35.     run genkernel --oldconfig all
  36. fi
  37.  
  38. collect_old_kernels "${cur_kernel}" "${new_kernel}" | while read path
  39. do
  40.     run rm -r "${path}"
  41. done
  42.  
  43. run grub-mkconfig -o /boot/grub/grub.cfg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement