Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- if [ "$(whoami)" != root ]
- then
- echo "$0: must be root"
- exit 1
- fi
- run() {
- printf "\033[1;35m--> \033[1;34m$*\033[0m\n"
- "$@" || exit 1
- }
- collect_old_kernels() {
- re="$(echo "$@" | sed -re 's,linux-,,g' -e 's, ,|,')"
- find /usr/src -mindepth 1 -maxdepth 1 -name 'linux-*' | grep -Ev "/linux-${re}\$"
- find /boot -name 'initramfs-*' | grep -Ev "\-${re}\$"
- find /boot -name 'kernel-*' | grep -Ev "\-${re}\$"
- find /boot -name 'System.map-*' | grep -Ev "\-${re}\$"
- }
- already_built() {
- ver="$(echo "$1" | sed -re 's,linux-,,g')"
- ls -1 /boot | grep -Eq "^initramfs-.*${ver}\$"
- }
- cur_kernel="linux-$(uname -r)"
- new_kernel="$(eselect kernel list | tail -1 | awk '{print $2}')"
- run eselect kernel set "${new_kernel}"
- if ! already_built "${new_kernel}"
- then
- run cp -i /usr/src/"${cur_kernel}"/.config /usr/src/"${new_kernel}"/.config
- run genkernel --oldconfig all
- fi
- collect_old_kernels "${cur_kernel}" "${new_kernel}" | while read path
- do
- run rm -r "${path}"
- done
- run grub-mkconfig -o /boot/grub/grub.cfg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement