]> Freerunner's - dotfiles.git/commitdiff
upgrayyedd: refactor functions (WIP)
authorAndre Ramnitz <tux.rising@gmail.com>
Sat, 6 Dec 2025 00:37:34 +0000 (01:37 +0100)
committerAndre Ramnitz <tux.rising@gmail.com>
Sat, 6 Dec 2025 00:37:34 +0000 (01:37 +0100)
dot-local/bin/upgrayyedd

index 320465dad335c5e2018b573036c70c5ced31afb2..570052db52bd7759880b6821cb03614373d7994e 100755 (executable)
@@ -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'