#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
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
$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
;;
testify)
echo "${@:2}"
echo "Precmd is: $precmd"
+ echo "$numcores"
+ dont_build gentoo
;;
*)
printf '\nCurrently available commands:\n\n'