#!/bin/bash BACKUP="/home/yorune/MEGA/Systems/Linux/portage" TMP_KERNEL="/tmp/kernel-config-$(uname -r)" DEFAULT_KERNEL="/usr/src/linux/.config" GRUBRELOAD=1 function starting() { echo -e "\e[93m----------------------COMPILING------------------------------\e[0m" sudo cp -rv "$DEFAULT_KERNEL" "$TMP_KERNEL" cp -r "$TMP_KERNEL" "$BACKUP/kernel-config" sudo cp -r /etc/portage/* $BACKUP qlist -I | sort -u > $BACKUP/list-of-programs } function selection() { echo -e "\e[93m----------------------SELECTION-----------------------------\e[0m" sudo eselect kernel list echo echo read -rp "New kernel is: " KERVER echo echo -e "Your kernel now is \e[91m$(uname -sr)\e[0m" echo -e "Your selected kernel is \e[91m$KERVER\e[0m" sudo eselect kernel set "$KERVER" sudo eselect kernel list | grep -iE "\*" echo } function compilation() { read -rp "Do you want to accept and compile (Y/N): " agreed echo if [ "$agreed" == "y" ] || [ "$agreed" == "Y" ] then echo -e "\e[91m----------------------\e[5mSTARTING\e[0m\e[91m------------------------------\e[0m" && sleep 10 $NOW > /tmp/compiling-starting NEW_KERNEL="/tmp/new-kernel-config" sudo cp -r "$TMP_KERNEL" "$DEFAULT_KERNEL" cd /usr/src/linux || exit sudo make menuconfig; sleep 2; sudo cp -r "$DEFAULT_KERNEL" "$NEW_KERNEL" sudo genkernel all --makeopts=-j"$(nproc --all)" \ --kernel-config=$NEW_KERNEL \ --callback="emerge nvidia-drivers::gentoo" \ --zfs elif [ "$agreed" == "N" ] || [ "$agreed" == "n" ] then exit fi } function ending() { echo echo echo -e "\e[93m----------------------CHECKING-----------------------------\e[0m" checking echo echo echo -e "\e[93m----------------------REMEMBER-----------------------------\e[0m" echo "You can remove:" echo "* /lib/modules/OLD_KERNEL" echo "* /boot/initramfs-genkernel-OLD_KERNEL" echo "* /boot/vmlinuz-OLD_KERNEL" echo "* /boot/System.map-OLD_KERNEL" echo "* /boot/initramfs-OLD_KERNEL" echo "* /usr/src/linux-OLD_KERNEL" echo echo -e "AFTER EVERYTHING YOU MUST WRITE COMMAND \e[91m"sudo grub-mkconfig -o /boot/grub/grub.cfg"\e[0m" } function checking() { KERNEL=$(eselect kernel list \ | awk '{print $2}' \ | grep -Eo '[0-9]+.[0-9]+.[0-9]+' \ | tail -n1) INITRANFS="initramfs-$KERNEL-gentoo-x86_64.img" SYSTEMMAP="System.map-$KERNEL-gentoo-x86_64" VMLINUZ="vmlinuz-$KERNEL-gentoo-x86_64" ifchecking "$INITRANFS" ifchecking "$SYSTEMMAP" ifchecking "$VMLINUZ" [ "$GRUBRELOAD" -eq "1" ] && sudo grub-mkconfig -o /boot/grub/grub.cfg \ || echo "Please check all files and regenerate grub again!" } function ifchecking () { FILE=/boot/$1 if test -f "$FILE"; then echo "$FILE exist in the /boot folder ;)" else echo "$FILE NOT exist in the /boot folder ;)" GRUBRELOAD=0 fi } function addgit() { cd "$BACKUP" || exit sleep 20 git add . git commit -m "Updated: $(date)" git push cd "$HOME" || exit } function main() { clear BEGIN=$(date +"%s") starting addgit selection compilation echo -e "\e[31mI am leaving! Thank You!\e[0m" && sleep 3 TERMIN=$(date +"%s") DIFFTLPS=$(($TERMIN-$BEGIN)) echo -e "\e[93m------------------TIME COMPILATION-------------------------\e[0m" echo -e "\e[93m$(($DIFFTLPS / 60)) minutes and $(($DIFFTLPS % 60)) seconds \e[0m elapsed for Script Execution." && sleep 3 ending exit } main