From fb104cc1ad62b82b46a676283fbbf4fe783484bc Mon Sep 17 00:00:00 2001 From: Andre Ramnitz Date: Sat, 6 Dec 2025 01:37:34 +0100 Subject: [PATCH] upgrayyedd: refactor functions (WIP) --- dot-local/bin/upgrayyedd | 84 +++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 39 deletions(-) diff --git a/dot-local/bin/upgrayyedd b/dot-local/bin/upgrayyedd index 320465da..570052db 100755 --- a/dot-local/bin/upgrayyedd +++ b/dot-local/bin/upgrayyedd @@ -2,7 +2,6 @@ #make sure we're running gentoo test $(grep -e ^ID /etc/os-release | cut -f2 -d\=) = gentoo || exit - source /etc/portage/make.conf declare precmd @@ -13,15 +12,30 @@ else precmd="" fi +numcores="$(echo ""$(nproc)"" -4 | bc)" + do_build(){ - $precmd make mrproper - $precmd cp "/usr/src/config-gentoo" "./.config" || exit 1 - $precmd schedtool -D -e make oldconfig - $precmd schedtool -D -e make modules_prepare - $precmd schedtool -D -e make -j$(echo $(nproc) -4 | bc) || exit 1 - $precmd emerge @module-rebuild - $precmd schedtool -D -e make modules_install - $precmd schedtool -D -e make install +[[ $(id -u) -ne 0 ]] && sudo -s arg="$1" cores="$numcores" <<'END_OF_SUDO' + make mrproper + cp "/usr/src/config-$arg" "./.config" || exit 2 + schedtool -D -e make oldconfig + schedtool -D -e make modules_prepare + schedtool -D -e make -j"$cores" || exit 2 + emerge @module-rebuild + schedtool -D -e make modules_install + schedtool -D -e make install +END_OF_SUDO +sudo -k +} + +dont_build(){ + echo "/usr/src/config-"$1"" "./.config" +} + + +build_timeout(){ + unset key + read -n 1 -s -r -p "Press any key to continue" key } case "$1" in @@ -64,52 +78,42 @@ case "$1" in $precmd /usr/bin/emerge -av @live-rebuild ;; kernel-gentoo) - MOSTRECENT=$(command ls -1 /usr/src/ | grep -P "^linux-(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)-gentoo" | tail -n1) - test -h "/usr/src/linux" && sudo rm -f "/usr/src/linux" - sudo ln -sf "/usr/src/${MOSTRECENT}/" "/usr/src/linux" - echo "Building $MOSTRECENT" + cd "/usr/src/linux" || exit 2 + echo "Building version:" + head -n5 Makefile + build_timeout echo "" - cd "/usr/src/linux" || exit 1 - echo "Changed to directory: $(pwd -P)" - do_build + do_build gentoo echo "Build completed. Remember to upgrayyedd /usr/src/config-* if necessary." exit 0 ;; kernel-llvm) - MOSTRECENT=$(command ls -1 /usr/src/ | grep -P "^linux-(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)-gentoo" | tail -n1) - test -h "/usr/src/linux" && sudo rm -f "/usr/src/linux" - sudo ln -sf "/usr/src/${MOSTRECENT}/" "/usr/src/linux" - echo "Building $MOSTRECENT" + cd "/usr/src/linux" || exit 2 + echo "Building version:" + head -n5 Makefile + build_timeout echo "" - cd "/usr/src/linux" || exit 1 - echo "Changed to directory: $(pwd -P)" - LLVM=1 do_build + do_build llvm echo "Build completed. Remember to upgrayyedd /usr/src/config-* if necessary." exit 0 ;; kernel-git) - MOSTRECENT=$(command ls -1 /usr/src/ | grep -P "^linux-(\\d+\\.)?(\\*|\\d+)-rc" | tail -n1) - test -n "$MOSTRECENT" || exit 1 - test -h "/usr/src/linux" && sudo rm -f "/usr/src/linux" - sudo ln -sf "/usr/src/${MOSTRECENT}/" "/usr/src/linux" - echo "Building $MOSTRECENT" + cd "/usr/src/linux" || exit 2 + echo "Building version:" + head -n5 Makefile + build_timeout echo "" - cd "/usr/src/linux" || exit 1 - echo "Changed to directory: $(pwd -P)" - do_build + do_build git echo "Build completed. Remember to upgrayyedd /usr/src/config-* if necessary." exit 0 ;; kernel-server) - MOSTRECENT=$(command ls -1 /usr/src/ | grep -P "^linux-(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)-gentoo" | tail -n1) - test -n "$MOSTRECENT" || exit 1 - test -h "/usr/src/linux" && sudo rm -f "/usr/src/linux" - sudo ln -sf "/usr/src/${MOSTRECENT}/" "/usr/src/linux" - echo "Building $MOSTRECENT" + cd "/usr/src/linux" || exit 2 + echo "Building version:" + head -n5 Makefile + build_timeout echo "" - cd "/usr/src/linux" || exit 1 - echo "Changed to directory: $(pwd -P)" - do_build + do_build server echo "Build completed. Remember to upgrayyedd /usr/src/config-* if necessary." exit 0 ;; @@ -130,6 +134,8 @@ case "$1" in testify) echo "${@:2}" echo "Precmd is: $precmd" + echo "$numcores" + dont_build gentoo ;; *) printf '\nCurrently available commands:\n\n' -- 2.51.2