#!/bin/sh error () # error { echo "$1" exit 1 } kerneldir="$HOME/.local/src" kernelsite="ftp://www.kernel.org/pub/linux/kernel/v3.x" currentver="$(uname -r)" basever="$(uname -r | rev | cut -d. -f1 --complement | rev)" newver="$(lftp -c "open $kernelsite; ls" | awk '{ print $9 }' | grep "patch-$basever.*\.xz" | sort -V | tail -n1 | sed 's/patch-//' | sed 's/\.xz//')" if test "$currentver" = "$newver" then echo 'Kernel is up to date.' else echo "Updating kernel to $newver" cd "$kerneldir" tar -xf "linux-$basever.tar.xz" || exit 1 mv "linux-$basever" "linux-$newver" || exit 1 cd "linux-$newver" lftp -c "open $kernelsite; get patch-$newver.xz patch-$newver.sign" || exit 1 unxz "patch-$newver.xz" gpg --verify "patch-$newver.sign" || exit 1 patch -p1 < "patch-$newver" || exit 1 make mrproper zcat /proc/config.gz > .config make oldconfig echo "cd $PWD" fi exit 0